Skip to content

Instantly share code, notes, and snippets.

@dimkoug
Created November 20, 2021 12:55
Show Gist options
  • Save dimkoug/debdd1c48004ac8df6f0bbce0d300fa2 to your computer and use it in GitHub Desktop.
Save dimkoug/debdd1c48004ac8df6f0bbce0d300fa2 to your computer and use it in GitHub Desktop.
django ajax class based mixins
class AjaxListMixin:
def get(self, request, *args, **kwargs):
self.object_list = self.get_queryset()
if request.is_ajax():
data = serializers.serialize("json", self.object_list)
return JsonResponse(data, safe=False)
context = self.get_context_data()
return self.render_to_response(context)
class AjaxFormMixin:
def form_valid(self, form):
form.save()
if self.request.is_ajax():
data = serializers.serialize("json", [form.instance])
return JsonResponse(data, safe=False, status=200)
return super().form_valid(form)
def form_invalid(self, form):
if self.request.is_ajax():
return JsonResponse(form.errors, safe=False, status=400)
return super().form_invalid(form)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment