1
0
mirror of https://github.com/django/django.git synced 2025-06-05 03:29:12 +00:00

[2.1.x] Added ModelAdmin._response_post_save() to avoid code duplication.

Backport of 57f16655cd5031ef04bf5e310c9e1d31eff912ce from master
This commit is contained in:
Jon Dufresne 2018-08-12 07:23:03 -07:00 committed by Tim Graham
parent f5fbff0b4e
commit 91d281c021

View File

@ -1322,11 +1322,7 @@ class ModelAdmin(BaseModelAdmin):
self.message_user(request, msg, messages.SUCCESS) self.message_user(request, msg, messages.SUCCESS)
return self.response_post_save_change(request, obj) return self.response_post_save_change(request, obj)
def response_post_save_add(self, request, obj): def _response_post_save(self, request, obj):
"""
Figure out where to redirect after the 'Save' button has been pressed
when adding a new object.
"""
opts = self.model._meta opts = self.model._meta
if self.has_change_permission(request, None): if self.has_change_permission(request, None):
post_url = reverse('admin:%s_%s_changelist' % post_url = reverse('admin:%s_%s_changelist' %
@ -1339,23 +1335,19 @@ class ModelAdmin(BaseModelAdmin):
current_app=self.admin_site.name) current_app=self.admin_site.name)
return HttpResponseRedirect(post_url) return HttpResponseRedirect(post_url)
def response_post_save_add(self, request, obj):
"""
Figure out where to redirect after the 'Save' button has been pressed
when adding a new object.
"""
return self._response_post_save(request, obj)
def response_post_save_change(self, request, obj): def response_post_save_change(self, request, obj):
""" """
Figure out where to redirect after the 'Save' button has been pressed Figure out where to redirect after the 'Save' button has been pressed
when editing an existing object. when editing an existing object.
""" """
opts = self.model._meta return self._response_post_save(request, obj)
if self.has_change_permission(request, None):
post_url = reverse('admin:%s_%s_changelist' %
(opts.app_label, opts.model_name),
current_app=self.admin_site.name)
preserved_filters = self.get_preserved_filters(request)
post_url = add_preserved_filters({'preserved_filters': preserved_filters, 'opts': opts}, post_url)
else:
post_url = reverse('admin:index',
current_app=self.admin_site.name)
return HttpResponseRedirect(post_url)
def response_action(self, request, queryset): def response_action(self, request, queryset):
""" """