Skip to content

Commit

Permalink
[2.1.x] Clarified the values accepted by ModelAdmin.fields.
Browse files Browse the repository at this point in the history
Backport of 45086c2 from master
  • Loading branch information
adamchainz authored and timgraham committed Aug 3, 2018
1 parent 1593a83 commit 4261ba6
Showing 1 changed file with 10 additions and 12 deletions.
22 changes: 10 additions & 12 deletions docs/ref/contrib/admin/index.txt
Original file line number Diff line number Diff line change
Expand Up @@ -308,9 +308,9 @@ subclass::

For more complex layout needs, see the :attr:`~ModelAdmin.fieldsets` option.

The ``fields`` option, unlike :attr:`~ModelAdmin.list_display`, may only
contain names of fields on the model or the form specified by
:attr:`~ModelAdmin.form`. It may contain callables only if they are listed
The ``fields`` option accepts the same types of values as
:attr:`~ModelAdmin.list_display`, except that callables aren't accepted.
Names of model and model admin methods will only be used if they're listed
in :attr:`~ModelAdmin.readonly_fields`.

To display multiple fields on the same line, wrap those fields in their own
Expand Down Expand Up @@ -550,15 +550,14 @@ subclass::
If you don't set ``list_display``, the admin site will display a single
column that displays the ``__str__()`` representation of each object.

You have four possible values that can be used in ``list_display``:
There are four types of values that can be used in ``list_display``:

* A field of the model. For example::
* The name of a model field. For example::

class PersonAdmin(admin.ModelAdmin):
list_display = ('first_name', 'last_name')

* A callable that accepts one parameter for the model instance. For
example::
* A callable that accepts one argument, the model instance. For example::

def upper_case_name(obj):
return ("%s %s" % (obj.first_name, obj.last_name)).upper()
Expand All @@ -567,8 +566,8 @@ subclass::
class PersonAdmin(admin.ModelAdmin):
list_display = (upper_case_name,)

* A string representing an attribute on the ``ModelAdmin``. This
behaves same as the callable. For example::
* A string representing a ``ModelAdmin`` method that accepts one argument,
the model instance. For example::

class PersonAdmin(admin.ModelAdmin):
list_display = ('upper_case_name',)
Expand All @@ -577,9 +576,8 @@ subclass::
return ("%s %s" % (obj.first_name, obj.last_name)).upper()
upper_case_name.short_description = 'Name'

* A string representing an attribute on the model. This behaves almost
the same as the callable, but ``self`` in this context is the model
instance. Here's a full model example::
* A string representing a model attribute or method (without any required
arguments). For example::

from django.contrib import admin
from django.db import models
Expand Down

0 comments on commit 4261ba6

Please sign in to comment.