import json from django.shortcuts import render from django.core.urlresolvers import reverse from django.http import JsonResponse, HttpResponse from django.views.generic import ListView, DetailView, CreateView, UpdateView, DeleteView, TemplateView from .models import WorkSell from .forms import WorkSellForm class WorkSellsView(ListView): model = WorkSell template_name = 'worksells_list.html' paginate_by = 20 class WorkSellDetail(DetailView): model = WorkSell template_name = 'worksell_detail.html' def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) context['worksell_related'] = WorkSell.objects.all()[:5] return context def work_sell_create(request): if request.is_ajax(): form = WorkSellForm(data=request.POST) if form.is_valid(): instance = form.save(commit=False) instance.save() data = {'status': 'ok'} else: data = {'status': 'no', 'form_errors': form.errors} return HttpResponse(json.dumps(data), content_type='application/json') return HttpResponse("HEllo") class WorkSellCreateView(CreateView): model = WorkSell form_class = WorkSellForm template_name = 'worksell_create.html' class WorkSellUpdateView(UpdateView): model = WorkSell form_class = WorkSellForm template_name = 'worksell_edit.html' def get_success_url(self): return reverse('work_sell:list') class WorkSellDeleteView(CreateView): model = WorkSell class JSONResponseMixin(object): def render_to_json_response(self, context, **response_kwargs): return JsonResponse( self.get_data(context), **response_kwargs ) def get_data(self, context): context = {'test': 'data'} return context class JSONView(JSONResponseMixin, TemplateView): def render_to_response(self, context, **response_kwargs): return self.render_to_json_response(context, **response_kwargs)