summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorKamil Braun <kb346840@students.mimuw.edu.pl>2014-11-27 19:34:14 +0100
committerTim Graham <timograham@gmail.com>2014-12-02 08:43:59 -0500
commitccc30ffe57e5f1e4dbda371b8a1d00c19a3150aa (patch)
tree6e75016a6a99b24135263fadc27d4a804981c7b7 /django
parent3a42d9730cbb07ffbb983791e631f5d0a6746f68 (diff)
[1.7.x] Fixed #23934 -- Fixed regression in admin views obj parameter.
Backport of 0623f4dea46eefba46efde6c6528f7d813ef4391 from master
Diffstat (limited to 'django')
-rw-r--r--django/contrib/admin/options.py10
1 files changed, 5 insertions, 5 deletions
diff --git a/django/contrib/admin/options.py b/django/contrib/admin/options.py
index 3d0faf0e33..e1f56c6f9b 100644
--- a/django/contrib/admin/options.py
+++ b/django/contrib/admin/options.py
@@ -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()