Skip to content

Commit bae9c53

Browse files
authored
DeleteMessageMixin fixes
Changed post override to delete override. Overriding post and calling the super delete method was causing the deletion to happen no matter how one would override the Delete method. Added logic to only actually delete if the request is not an ajax request. This prevents the parent deletion being called twice and throwing a 404 error on get_object when it is called on the second POST.
1 parent a39e401 commit bae9c53

File tree

1 file changed

+11
-6
lines changed

1 file changed

+11
-6
lines changed

bootstrap_modal_forms/mixins.py

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -48,13 +48,18 @@ def save(self, commit=True):
4848

4949
class DeleteMessageMixin(object):
5050
"""
51-
Mixin which adds message to BSModalDeleteView.
51+
Mixin which adds message to BSModalDeleteView and only calls the delete method if request
52+
is not ajax request.
5253
"""
53-
54-
def post(self, request, *args, **kwargs):
55-
messages.success(request, self.success_message)
56-
return super(DeleteMessageMixin, self).delete(request, *args, **kwargs)
57-
54+
55+
def delete(self, request, *args, **kwargs):
56+
if not self.request.is_ajax():
57+
messages.success(request, self.success_message)
58+
return super(DeleteMessageMixin, self).delete(request, *args, **kwargs)
59+
else:
60+
self.object = self.get_object()
61+
success_url = self.get_success_url()
62+
return HttpResponseDirect(success_url)
5863

5964
class LoginAjaxMixin(object):
6065
"""

0 commit comments

Comments
 (0)