Created
November 20, 2021 12:55
-
-
Save dimkoug/debdd1c48004ac8df6f0bbce0d300fa2 to your computer and use it in GitHub Desktop.
django ajax class based mixins
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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