diff options
| author | Loic Bistuer <loic.bistuer@sixmedia.com> | 2013-04-17 01:49:22 +0700 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2013-05-31 12:48:51 -0400 |
| commit | 23e1b59cf2ad6a75637dd0273973e657e48e317e (patch) | |
| tree | db4551430adc5e599b04e9f41dc922a98a23d4a2 /django | |
| parent | f10e9af22759cc287a967bba02c75d2834761f1e (diff) | |
Fixed #18681 -- BaseModelAdmin.get_form and InlineModelAdmin.get_formset no longer bypass get_fieldsets
Thanks msopacua for the report.
Diffstat (limited to 'django')
| -rw-r--r-- | django/contrib/admin/options.py | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/django/contrib/admin/options.py b/django/contrib/admin/options.py index a0a82f32ff..97f82cbb59 100644 --- a/django/contrib/admin/options.py +++ b/django/contrib/admin/options.py @@ -498,7 +498,7 @@ class ModelAdmin(BaseModelAdmin): "Hook for specifying fieldsets for the add form." if self.declared_fieldsets: return self.declared_fieldsets - form = self.get_form(request, obj) + form = self.get_form(request, obj, fields=None) fields = list(form.base_fields) + list(self.get_readonly_fields(request, obj)) return [(None, {'fields': fields})] @@ -507,10 +507,10 @@ class ModelAdmin(BaseModelAdmin): Returns a Form class for use in the admin add view. This is used by add_view and change_view. """ - if self.declared_fieldsets: - fields = flatten_fieldsets(self.declared_fieldsets) + if 'fields' in kwargs: + fields = kwargs.pop('fields') else: - fields = None + fields = flatten_fieldsets(self.get_fieldsets(request, obj)) if self.exclude is None: exclude = [] else: @@ -1518,10 +1518,10 @@ class InlineModelAdmin(BaseModelAdmin): def get_formset(self, request, obj=None, **kwargs): """Returns a BaseInlineFormSet class for use in admin add/change views.""" - if self.declared_fieldsets: - fields = flatten_fieldsets(self.declared_fieldsets) + if 'fields' in kwargs: + fields = kwargs.pop('fields') else: - fields = None + fields = flatten_fieldsets(self.get_fieldsets(request, obj)) if self.exclude is None: exclude = [] else: @@ -1593,7 +1593,7 @@ class InlineModelAdmin(BaseModelAdmin): def get_fieldsets(self, request, obj=None): if self.declared_fieldsets: return self.declared_fieldsets - form = self.get_formset(request, obj).form + form = self.get_formset(request, obj, fields=None).form fields = list(form.base_fields) + list(self.get_readonly_fields(request, obj)) return [(None, {'fields': fields})] |
