From 45086c294d63ac8787cebff2accd1680ac844138 Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Fri, 3 Aug 2018 18:17:23 +0200 Subject: [PATCH] Clarified the values accepted by ModelAdmin.fields. --- docs/ref/contrib/admin/index.txt | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/docs/ref/contrib/admin/index.txt b/docs/ref/contrib/admin/index.txt index a18f5682f05..ba0406f8021 100644 --- a/docs/ref/contrib/admin/index.txt +++ b/docs/ref/contrib/admin/index.txt @@ -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 @@ -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() @@ -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',) @@ -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