Cleanup for AjaxDeleteView

- Doesn't call renderJsonResponse as it returns html_data not html_form
This commit is contained in:
Oliver Walters 2019-04-16 19:01:58 +10:00
parent 7190a6fb7f
commit 7708ffb069

View File

@ -65,10 +65,7 @@ class AjaxMixin(object):
else:
return self.template_name
def renderJsonResponse(self, request, form=None, data={}, context=None):
if context is None:
context = self.get_context_data()
def renderJsonResponse(self, request, form=None, data={}, context={}):
if form:
context['form'] = form
@ -180,30 +177,20 @@ class AjaxUpdateView(AjaxMixin, UpdateView):
class AjaxDeleteView(AjaxMixin, DeleteView):
def post(self, request, *args, **kwargs):
if request.is_ajax():
obj = self.get_object()
pk = obj.id
obj.delete()
data = {'id': pk,
'delete': True}
return self.renderJsonResponse(request, None, data)
else:
return super(DeleteView, self).post(request, *args, **kwargs)
""" An 'AJAXified DeleteView for removing an object from the DB
- Returns a HTML object (not a form!) in JSON format (for delivery to a modal window)
- Handles deletion
"""
def get(self, request, *args, **kwargs):
response = super(DeleteView, self).get(request, *args, **kwargs)
html_response = super(DeleteView, self).get(request, *args, **kwargs)
if request.is_ajax():
data = {'id': self.get_object().id,
'title': self.ajax_form_title,
'delete': False,
'title': self.ajax_form_title,
'html_data': render_to_string(self.getAjaxTemplate(),
self.get_context_data(),
request=request)
@ -212,7 +199,23 @@ class AjaxDeleteView(AjaxMixin, DeleteView):
return JsonResponse(data)
else:
return response
return html_response
def post(self, request, *args, **kwargs):
if request.is_ajax():
obj = self.get_object()
pk = obj.id
obj.delete()
data = {'id': pk,
'delete': True}
return self.renderJsonResponse(request, data=data)
else:
return super(DeleteView, self).post(request, *args, **kwargs)
class IndexView(TemplateView):