mirror of
https://github.com/django/django.git
synced 2025-11-25 05:04:26 +00:00
Fixed #18681 -- BaseModelAdmin.get_form and InlineModelAdmin.get_formset no longer bypass get_fieldsets
Thanks msopacua for the report.
This commit is contained in:
parent
f10e9af227
commit
23e1b59cf2
2 changed files with 32 additions and 8 deletions
|
|
@ -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})]
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue