mirror of
https://github.com/django/django.git
synced 2025-11-07 07:15:35 +00:00
[1.7.x] Fixed #23934 -- Fixed regression in admin views obj parameter.
Backport of 0623f4dea4 from master
This commit is contained in:
@@ -1399,7 +1399,7 @@ class ModelAdmin(BaseModelAdmin):
|
||||
else:
|
||||
form_validated = False
|
||||
new_object = form.instance
|
||||
formsets, inline_instances = self._create_formsets(request, new_object)
|
||||
formsets, inline_instances = self._create_formsets(request, new_object, change=not add)
|
||||
if all_valid(formsets) and form_validated:
|
||||
self.save_model(request, new_object, form, not add)
|
||||
self.save_related(request, form, formsets, not add)
|
||||
@@ -1414,10 +1414,10 @@ class ModelAdmin(BaseModelAdmin):
|
||||
if add:
|
||||
initial = self.get_changeform_initial_data(request)
|
||||
form = ModelForm(initial=initial)
|
||||
formsets, inline_instances = self._create_formsets(request, self.model())
|
||||
formsets, inline_instances = self._create_formsets(request, self.model(), change=False)
|
||||
else:
|
||||
form = ModelForm(instance=obj)
|
||||
formsets, inline_instances = self._create_formsets(request, obj)
|
||||
formsets, inline_instances = self._create_formsets(request, obj, change=True)
|
||||
|
||||
adminForm = helpers.AdminForm(
|
||||
form,
|
||||
@@ -1702,13 +1702,13 @@ class ModelAdmin(BaseModelAdmin):
|
||||
"admin/object_history.html"
|
||||
], context, current_app=self.admin_site.name)
|
||||
|
||||
def _create_formsets(self, request, obj):
|
||||
def _create_formsets(self, request, obj, change):
|
||||
"Helper function to generate formsets for add/change_view."
|
||||
formsets = []
|
||||
inline_instances = []
|
||||
prefixes = {}
|
||||
get_formsets_args = [request]
|
||||
if obj.pk:
|
||||
if change:
|
||||
get_formsets_args.append(obj)
|
||||
for FormSet, inline in self.get_formsets_with_inlines(*get_formsets_args):
|
||||
prefix = FormSet.get_default_prefix()
|
||||
|
||||
Reference in New Issue
Block a user