summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Graham <timograham@gmail.com>2017-06-07 17:11:02 -0400
committerGitHub <noreply@github.com>2017-06-07 17:11:02 -0400
commitc16aa69101a3722061be4a2ed435865557b99157 (patch)
tree4187b5ad579c503466024e270dfa1c283331ccdf
parent681d2599ee224826de0050f92f65fdf96bb6a0ca (diff)
Factored shared Inline/ModelAdmin.get_fields() logic into BaseModelAdmin.
BaseModelAdmin.get_fields() was previously unused/untested.
-rw-r--r--django/contrib/admin/options.py20
1 files changed, 9 insertions, 11 deletions
diff --git a/django/contrib/admin/options.py b/django/contrib/admin/options.py
index d0941a44a4..5a99a2970d 100644
--- a/django/contrib/admin/options.py
+++ b/django/contrib/admin/options.py
@@ -290,7 +290,11 @@ class BaseModelAdmin(metaclass=forms.MediaDefiningClass):
"""
Hook for specifying fields.
"""
- return self.fields
+ if self.fields:
+ return self.fields
+ # _get_form_for_get_fields() is implemented in subclasses.
+ form = self._get_form_for_get_fields(request, obj)
+ return list(form.base_fields) + list(self.get_readonly_fields(request, obj))
def get_fieldsets(self, request, obj=None):
"""
@@ -598,11 +602,8 @@ class ModelAdmin(BaseModelAdmin):
'delete': self.has_delete_permission(request),
}
- def get_fields(self, request, obj=None):
- if self.fields:
- return self.fields
- form = self.get_form(request, obj, fields=None)
- return list(form.base_fields) + list(self.get_readonly_fields(request, obj))
+ def _get_form_for_get_fields(self, request, obj):
+ return self.get_form(request, obj, fields=None)
def get_form(self, request, obj=None, **kwargs):
"""
@@ -1942,11 +1943,8 @@ class InlineModelAdmin(BaseModelAdmin):
return inlineformset_factory(self.parent_model, self.model, **defaults)
- def get_fields(self, request, obj=None):
- if self.fields:
- return self.fields
- form = self.get_formset(request, obj, fields=None).form
- return list(form.base_fields) + list(self.get_readonly_fields(request, obj))
+ def _get_form_for_get_fields(self, request, obj=None):
+ return self.get_formset(request, obj, fields=None).form
def get_queryset(self, request):
queryset = super().get_queryset(request)