mirror of
https://github.com/django/django.git
synced 2025-10-24 06:06:09 +00:00
Refs #36485 -- Rewrapped docs to 79 columns line length.
Lines in the docs files were manually adjusted to conform to the 79 columns limit per line (plus newline), improving readability and consistency across the content.
This commit is contained in:
@@ -189,8 +189,8 @@ You can do it like this::
|
||||
|
||||
Notice first that we've moved ``make_published`` into a method and renamed the
|
||||
``modeladmin`` parameter to ``self``, and second that we've now put the string
|
||||
``'make_published'`` in ``actions`` instead of a direct function reference. This
|
||||
tells the :class:`ModelAdmin` to look up the action as a method.
|
||||
``'make_published'`` in ``actions`` instead of a direct function reference.
|
||||
This tells the :class:`ModelAdmin` to look up the action as a method.
|
||||
|
||||
Defining actions as methods gives the action more idiomatic access to the
|
||||
:class:`ModelAdmin` itself, allowing the action to call any of the methods
|
||||
@@ -286,10 +286,10 @@ Making actions available site-wide
|
||||
|
||||
.. method:: AdminSite.add_action(action, name=None)
|
||||
|
||||
Some actions are best if they're made available to *any* object in the admin
|
||||
site -- the export action defined above would be a good candidate. You can
|
||||
make an action globally available using :meth:`AdminSite.add_action`. For
|
||||
example::
|
||||
Some actions are best if they're made available to *any* object in the
|
||||
admin site -- the export action defined above would be a good candidate.
|
||||
You can make an action globally available using
|
||||
:meth:`AdminSite.add_action`. For example::
|
||||
|
||||
from django.contrib import admin
|
||||
|
||||
@@ -297,8 +297,8 @@ Making actions available site-wide
|
||||
|
||||
This makes the ``export_selected_objects`` action globally available as an
|
||||
action named "export_selected_objects". You can explicitly give the action
|
||||
a name -- good if you later want to programmatically :ref:`remove the action
|
||||
<disabling-admin-actions>` -- by passing a second argument to
|
||||
a name -- good if you later want to programmatically :ref:`remove the
|
||||
action <disabling-admin-actions>` -- by passing a second argument to
|
||||
:meth:`AdminSite.add_action`::
|
||||
|
||||
admin.site.add_action(export_selected_objects, "export_selected")
|
||||
@@ -317,11 +317,11 @@ Disabling a site-wide action
|
||||
|
||||
.. method:: AdminSite.disable_action(name)
|
||||
|
||||
If you need to disable a :ref:`site-wide action <adminsite-actions>` you can
|
||||
call :meth:`AdminSite.disable_action`.
|
||||
If you need to disable a :ref:`site-wide action <adminsite-actions>` you
|
||||
can call :meth:`AdminSite.disable_action`.
|
||||
|
||||
For example, you can use this method to remove the built-in "delete selected
|
||||
objects" action::
|
||||
For example, you can use this method to remove the built-in "delete
|
||||
selected objects" action::
|
||||
|
||||
admin.site.disable_action("delete_selected")
|
||||
|
||||
@@ -367,8 +367,8 @@ Conditionally enabling or disabling actions
|
||||
Finally, you can conditionally enable or disable actions on a per-request
|
||||
(and hence per-user basis) by overriding :meth:`ModelAdmin.get_actions`.
|
||||
|
||||
This returns a dictionary of actions allowed. The keys are action names, and
|
||||
the values are ``(function, name, short_description)`` tuples.
|
||||
This returns a dictionary of actions allowed. The keys are action names,
|
||||
and the values are ``(function, name, short_description)`` tuples.
|
||||
|
||||
For example, if you only want users whose names begin with 'J' to be able
|
||||
to delete objects in bulk::
|
||||
|
||||
@@ -127,8 +127,8 @@ The ``register`` decorator
|
||||
pass
|
||||
|
||||
It's given one or more model classes to register with the ``ModelAdmin``.
|
||||
If you're using a custom :class:`AdminSite`, pass it using the ``site`` keyword
|
||||
argument::
|
||||
If you're using a custom :class:`AdminSite`, pass it using the ``site``
|
||||
keyword argument::
|
||||
|
||||
from django.contrib import admin
|
||||
from .models import Author, Editor, Reader
|
||||
@@ -174,7 +174,8 @@ application and imports it.
|
||||
application. Such modules are expected to register models with the admin.
|
||||
|
||||
Typically you won't need to call this function directly as
|
||||
:class:`~django.contrib.admin.apps.AdminConfig` calls it when Django starts.
|
||||
:class:`~django.contrib.admin.apps.AdminConfig` calls it when Django
|
||||
starts.
|
||||
|
||||
If you are using a custom ``AdminSite``, it is common to import all of the
|
||||
``ModelAdmin`` subclasses into your code and register them to the custom
|
||||
@@ -204,13 +205,13 @@ subclass::
|
||||
.. attribute:: ModelAdmin.actions_on_bottom
|
||||
|
||||
Controls where on the page the actions bar appears. By default, the admin
|
||||
changelist displays actions at the top of the page (``actions_on_top = True;
|
||||
actions_on_bottom = False``).
|
||||
changelist displays actions at the top of the page (``actions_on_top =
|
||||
True; actions_on_bottom = False``).
|
||||
|
||||
.. attribute:: ModelAdmin.actions_selection_counter
|
||||
|
||||
Controls whether a selection counter is displayed next to the action dropdown.
|
||||
By default, the admin changelist will display it
|
||||
Controls whether a selection counter is displayed next to the action
|
||||
dropdown. By default, the admin changelist will display it
|
||||
(``actions_selection_counter = True``).
|
||||
|
||||
.. attribute:: ModelAdmin.date_hierarchy
|
||||
@@ -313,7 +314,8 @@ subclass::
|
||||
values defined in :attr:`ModelAdmin.readonly_fields` to be displayed as
|
||||
read-only.
|
||||
|
||||
For more complex layout needs, see the :attr:`~ModelAdmin.fieldsets` option.
|
||||
For more complex layout needs, see the :attr:`~ModelAdmin.fieldsets`
|
||||
option.
|
||||
|
||||
The ``fields`` option accepts the same types of values as
|
||||
:attr:`~ModelAdmin.list_display`, except that callables and ``__`` lookups
|
||||
@@ -321,8 +323,8 @@ subclass::
|
||||
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
|
||||
tuple. In this example, the ``url`` and ``title`` fields will display on the
|
||||
same line and the ``content`` field will be displayed below them on its
|
||||
tuple. In this example, the ``url`` and ``title`` fields will display on
|
||||
the same line and the ``content`` field will be displayed below them on its
|
||||
own line::
|
||||
|
||||
class FlatPageAdmin(admin.ModelAdmin):
|
||||
@@ -334,11 +336,11 @@ subclass::
|
||||
dictionary key that is within the :attr:`~ModelAdmin.fieldsets` option,
|
||||
as described in the next section.
|
||||
|
||||
If neither ``fields`` nor :attr:`~ModelAdmin.fieldsets` options are present,
|
||||
Django will default to displaying each field that isn't an ``AutoField`` and
|
||||
has ``editable=True``, in a single fieldset, in the same order as the fields
|
||||
are defined in the model, followed by any fields defined in
|
||||
:attr:`~ModelAdmin.readonly_fields`.
|
||||
If neither ``fields`` nor :attr:`~ModelAdmin.fieldsets` options are
|
||||
present, Django will default to displaying each field that isn't an
|
||||
``AutoField`` and has ``editable=True``, in a single fieldset, in the same
|
||||
order as the fields are defined in the model, followed by any fields
|
||||
defined in :attr:`~ModelAdmin.readonly_fields`.
|
||||
|
||||
.. attribute:: ModelAdmin.fieldsets
|
||||
|
||||
@@ -380,10 +382,10 @@ subclass::
|
||||
|
||||
.. image:: _images/fieldsets.png
|
||||
|
||||
If neither ``fieldsets`` nor :attr:`~ModelAdmin.fields` options are present,
|
||||
Django will default to displaying each field that isn't an ``AutoField`` and
|
||||
has ``editable=True``, in a single fieldset, in the same order as the fields
|
||||
are defined in the model.
|
||||
If neither ``fieldsets`` nor :attr:`~ModelAdmin.fields` options are
|
||||
present, Django will default to displaying each field that isn't an
|
||||
``AutoField`` and has ``editable=True``, in a single fieldset, in the same
|
||||
order as the fields are defined in the model.
|
||||
|
||||
The ``field_options`` dictionary can have the following keys:
|
||||
|
||||
@@ -489,11 +491,11 @@ subclass::
|
||||
since the admin has its own way of defining fields, the ``Meta.fields``
|
||||
attribute will be ignored.
|
||||
|
||||
If the ``ModelForm`` is only going to be used for the admin, the easiest
|
||||
solution is to omit the ``Meta.model`` attribute, since ``ModelAdmin``
|
||||
will provide the correct model to use. Alternatively, you can set
|
||||
``fields = []`` in the ``Meta`` class to satisfy the validation on the
|
||||
``ModelForm``.
|
||||
If the ``ModelForm`` is only going to be used for the admin, the
|
||||
easiest solution is to omit the ``Meta.model`` attribute, since
|
||||
``ModelAdmin`` will provide the correct model to use. Alternatively,
|
||||
you can set ``fields = []`` in the ``Meta`` class to satisfy the
|
||||
validation on the ``ModelForm``.
|
||||
|
||||
.. admonition:: ``ModelAdmin.exclude`` takes precedence
|
||||
|
||||
@@ -922,9 +924,9 @@ subclass::
|
||||
.. attribute:: ModelAdmin.list_max_show_all
|
||||
|
||||
Set ``list_max_show_all`` to control how many items can appear on a "Show
|
||||
all" admin change list page. The admin will display a "Show all" link on the
|
||||
change list only if the total result count is less than or equal to this
|
||||
setting. By default, this is set to ``200``.
|
||||
all" admin change list page. The admin will display a "Show all" link on
|
||||
the change list only if the total result count is less than or equal to
|
||||
this setting. By default, this is set to ``200``.
|
||||
|
||||
.. attribute:: ModelAdmin.list_per_page
|
||||
|
||||
@@ -1080,8 +1082,8 @@ subclass::
|
||||
You have the choice of using ``HORIZONTAL`` or ``VERTICAL`` from the
|
||||
``django.contrib.admin`` module.
|
||||
|
||||
Don't include a field in ``radio_fields`` unless it's a ``ForeignKey`` or has
|
||||
``choices`` set.
|
||||
Don't include a field in ``radio_fields`` unless it's a ``ForeignKey`` or
|
||||
has ``choices`` set.
|
||||
|
||||
.. attribute:: ModelAdmin.autocomplete_fields
|
||||
|
||||
@@ -1270,8 +1272,8 @@ subclass::
|
||||
WHERE (first_name ILIKE '%john winston%' OR last_name ILIKE '%john winston%')
|
||||
|
||||
If you don't want to use ``icontains`` as the lookup, you can use any
|
||||
lookup by appending it the field. For example, you could use :lookup:`exact`
|
||||
by setting ``search_fields`` to ``['first_name__exact']``.
|
||||
lookup by appending it the field. For example, you could use
|
||||
:lookup:`exact` by setting ``search_fields`` to ``['first_name__exact']``.
|
||||
|
||||
Some (older) shortcuts for specifying a field lookup are also available.
|
||||
You can prefix a field in ``search_fields`` with the following characters
|
||||
@@ -1298,9 +1300,9 @@ subclass::
|
||||
.. attribute:: ModelAdmin.show_full_result_count
|
||||
|
||||
Set ``show_full_result_count`` to control whether the full count of objects
|
||||
should be displayed on a filtered admin page (e.g. ``99 results (103 total)``).
|
||||
If this option is set to ``False``, a text like ``99 results (Show all)``
|
||||
is displayed instead.
|
||||
should be displayed on a filtered admin page (e.g. ``99 results (103
|
||||
total)``). If this option is set to ``False``, a text like ``99 results
|
||||
(Show all)`` is displayed instead.
|
||||
|
||||
The default of ``show_full_result_count=True`` generates a query to perform
|
||||
a full count on the table which can be expensive if the table contains a
|
||||
@@ -1323,16 +1325,17 @@ subclass::
|
||||
|
||||
.. attribute:: ModelAdmin.view_on_site
|
||||
|
||||
Set ``view_on_site`` to control whether or not to display the "View on site" link.
|
||||
This link should bring you to a URL where you can display the saved object.
|
||||
Set ``view_on_site`` to control whether or not to display the "View on
|
||||
site" link. This link should bring you to a URL where you can display the
|
||||
saved object.
|
||||
|
||||
This value can be either a boolean flag or a callable. If ``True`` (the
|
||||
default), the object's :meth:`~django.db.models.Model.get_absolute_url`
|
||||
method will be used to generate the url.
|
||||
|
||||
If your model has a :meth:`~django.db.models.Model.get_absolute_url` method
|
||||
but you don't want the "View on site" button to appear, you only need to set
|
||||
``view_on_site`` to ``False``::
|
||||
but you don't want the "View on site" button to appear, you only need to
|
||||
set ``view_on_site`` to ``False``::
|
||||
|
||||
from django.contrib import admin
|
||||
|
||||
@@ -1473,9 +1476,9 @@ default templates used by the :class:`ModelAdmin` views:
|
||||
readonly.append("age") # Edits the class attribute.
|
||||
return readonly
|
||||
|
||||
This results in ``readonly_fields`` becoming
|
||||
``["name", "age", "age", ...]``, even for a superuser, as ``"age"`` is added
|
||||
each time non-superuser visits the page.
|
||||
This results in ``readonly_fields`` becoming ``["name", "age", "age",
|
||||
...]``, even for a superuser, as ``"age"`` is added each time non-superuser
|
||||
visits the page.
|
||||
|
||||
.. method:: ModelAdmin.get_ordering(request)
|
||||
|
||||
@@ -1494,11 +1497,12 @@ default templates used by the :class:`ModelAdmin` views:
|
||||
|
||||
The ``get_search_results`` method modifies the list of objects displayed
|
||||
into those that match the provided search term. It accepts the request, a
|
||||
queryset that applies the current filters, and the user-provided search term.
|
||||
It returns a tuple containing a queryset modified to implement the search, and
|
||||
a boolean indicating if the results may contain duplicates.
|
||||
queryset that applies the current filters, and the user-provided search
|
||||
term. It returns a tuple containing a queryset modified to implement the
|
||||
search, and a boolean indicating if the results may contain duplicates.
|
||||
|
||||
The default implementation searches the fields named in :attr:`ModelAdmin.search_fields`.
|
||||
The default implementation searches the fields named in
|
||||
:attr:`ModelAdmin.search_fields`.
|
||||
|
||||
This method may be overridden with your own custom search method. For
|
||||
example, you might wish to search by an integer field, or use an external
|
||||
@@ -1528,8 +1532,8 @@ default templates used by the :class:`ModelAdmin` views:
|
||||
|
||||
This implementation is more efficient than ``search_fields =
|
||||
('name', '=age')`` which results in a string comparison for the numeric
|
||||
field, for example ``... OR UPPER("polls_choice"."votes"::text) = UPPER('4')``
|
||||
on PostgreSQL.
|
||||
field, for example
|
||||
``... OR UPPER("polls_choice"."votes"::text) = UPPER('4')`` on PostgreSQL.
|
||||
|
||||
.. _Solr: https://solr.apache.org
|
||||
.. _Haystack: https://haystacksearch.org
|
||||
@@ -1544,8 +1548,8 @@ default templates used by the :class:`ModelAdmin` views:
|
||||
|
||||
.. method:: ModelAdmin.get_autocomplete_fields(request)
|
||||
|
||||
The ``get_autocomplete_fields()`` method is given the ``HttpRequest`` and is
|
||||
expected to return a ``list`` or ``tuple`` of field names that will be
|
||||
The ``get_autocomplete_fields()`` method is given the ``HttpRequest`` and
|
||||
is expected to return a ``list`` or ``tuple`` of field names that will be
|
||||
displayed with an autocomplete widget as described above in the
|
||||
:attr:`ModelAdmin.autocomplete_fields` section.
|
||||
|
||||
@@ -1560,8 +1564,8 @@ default templates used by the :class:`ModelAdmin` views:
|
||||
|
||||
The ``get_prepopulated_fields`` method is given the ``HttpRequest`` and the
|
||||
``obj`` being edited (or ``None`` on an add form) and is expected to return
|
||||
a ``dictionary``, as described above in the :attr:`ModelAdmin.prepopulated_fields`
|
||||
section.
|
||||
a ``dictionary``, as described above in the
|
||||
:attr:`ModelAdmin.prepopulated_fields` section.
|
||||
|
||||
.. method:: ModelAdmin.get_list_display(request)
|
||||
|
||||
@@ -1572,11 +1576,11 @@ default templates used by the :class:`ModelAdmin` views:
|
||||
|
||||
.. method:: ModelAdmin.get_list_display_links(request, list_display)
|
||||
|
||||
The ``get_list_display_links`` method is given the ``HttpRequest`` and
|
||||
the ``list`` or ``tuple`` returned by :meth:`ModelAdmin.get_list_display`.
|
||||
It is expected to return either ``None`` or a ``list`` or ``tuple`` of field
|
||||
names on the changelist that will be linked to the change view, as described
|
||||
in the :attr:`ModelAdmin.list_display_links` section.
|
||||
The ``get_list_display_links`` method is given the ``HttpRequest`` and the
|
||||
``list`` or ``tuple`` returned by :meth:`ModelAdmin.get_list_display`. It
|
||||
is expected to return either ``None`` or a ``list`` or ``tuple`` of field
|
||||
names on the changelist that will be linked to the change view, as
|
||||
described in the :attr:`ModelAdmin.list_display_links` section.
|
||||
|
||||
.. method:: ModelAdmin.get_exclude(request, obj=None)
|
||||
|
||||
@@ -1595,7 +1599,8 @@ default templates used by the :class:`ModelAdmin` views:
|
||||
The ``get_fieldsets`` method is given the ``HttpRequest`` and the ``obj``
|
||||
being edited (or ``None`` on an add form) and is expected to return a list
|
||||
of 2-tuples, in which each 2-tuple represents a ``<fieldset>`` on the
|
||||
admin form page, as described above in the :attr:`ModelAdmin.fieldsets` section.
|
||||
admin form page, as described above in the :attr:`ModelAdmin.fieldsets`
|
||||
section.
|
||||
|
||||
.. method:: ModelAdmin.get_list_filter(request)
|
||||
|
||||
@@ -1611,8 +1616,8 @@ default templates used by the :class:`ModelAdmin` views:
|
||||
|
||||
.. method:: ModelAdmin.get_search_fields(request)
|
||||
|
||||
The ``get_search_fields`` method is given the ``HttpRequest`` and is expected
|
||||
to return the same kind of sequence type as for the
|
||||
The ``get_search_fields`` method is given the ``HttpRequest`` and is
|
||||
expected to return the same kind of sequence type as for the
|
||||
:attr:`~ModelAdmin.search_fields` attribute.
|
||||
|
||||
.. method:: ModelAdmin.get_sortable_by(request)
|
||||
@@ -1635,9 +1640,10 @@ default templates used by the :class:`ModelAdmin` views:
|
||||
The ``get_inline_instances`` method is given the ``HttpRequest`` and the
|
||||
``obj`` being edited (or ``None`` on an add form) and is expected to return
|
||||
a ``list`` or ``tuple`` of :class:`~django.contrib.admin.InlineModelAdmin`
|
||||
objects, as described below in the :class:`~django.contrib.admin.InlineModelAdmin`
|
||||
section. For example, the following would return inlines without the default
|
||||
filtering based on add, change, delete, and view permissions::
|
||||
objects, as described below in the
|
||||
:class:`~django.contrib.admin.InlineModelAdmin` section. For example, the
|
||||
following would return inlines without the default filtering based on add,
|
||||
change, delete, and view permissions::
|
||||
|
||||
class MyModelAdmin(admin.ModelAdmin):
|
||||
inlines = [MyInline]
|
||||
@@ -1862,8 +1868,8 @@ default templates used by the :class:`ModelAdmin` views:
|
||||
``Meta.fields`` attribute (or the ``Meta.exclude`` attribute). However,
|
||||
``ModelAdmin`` ignores this value, overriding it with the
|
||||
:attr:`ModelAdmin.list_editable` attribute. The easiest solution is to
|
||||
omit the ``Meta.model`` attribute, since ``ModelAdmin`` will provide the
|
||||
correct model to use.
|
||||
omit the ``Meta.model`` attribute, since ``ModelAdmin`` will provide
|
||||
the correct model to use.
|
||||
|
||||
.. method:: ModelAdmin.get_changelist_formset(request, **kwargs)
|
||||
|
||||
@@ -1892,13 +1898,13 @@ default templates used by the :class:`ModelAdmin` views:
|
||||
can be manipulated by the user, they must be sanitized to prevent
|
||||
unauthorized data exposure.
|
||||
|
||||
The ``lookup_allowed()`` method is given a lookup path from the query string
|
||||
(e.g. ``'user__email'``), the corresponding value
|
||||
(e.g. ``'user@example.com'``), and the request, and returns a boolean
|
||||
indicating whether filtering the changelist's ``QuerySet`` using the
|
||||
parameters is permitted. If ``lookup_allowed()`` returns ``False``,
|
||||
``DisallowedModelAdminLookup``
|
||||
(subclass of :exc:`~django.core.exceptions.SuspiciousOperation`) is raised.
|
||||
The ``lookup_allowed()`` method is given a lookup path from the query
|
||||
string (e.g. ``'user__email'``), the corresponding value (e.g.
|
||||
``'user@example.com'``), and the request, and returns a boolean indicating
|
||||
whether filtering the changelist's ``QuerySet`` using the parameters is
|
||||
permitted. If ``lookup_allowed()`` returns ``False``,
|
||||
``DisallowedModelAdminLookup`` (subclass of
|
||||
:exc:`~django.core.exceptions.SuspiciousOperation`) is raised.
|
||||
|
||||
By default, ``lookup_allowed()`` allows access to a model's local fields,
|
||||
field paths used in :attr:`~ModelAdmin.list_filter` (but not paths from
|
||||
@@ -1911,11 +1917,11 @@ default templates used by the :class:`ModelAdmin` views:
|
||||
|
||||
.. method:: ModelAdmin.has_view_permission(request, obj=None)
|
||||
|
||||
Should return ``True`` if viewing ``obj`` is permitted, ``False`` otherwise.
|
||||
If obj is ``None``, should return ``True`` or ``False`` to indicate whether
|
||||
viewing of objects of this type is permitted in general (e.g., ``False``
|
||||
will be interpreted as meaning that the current user is not permitted to
|
||||
view any object of this type).
|
||||
Should return ``True`` if viewing ``obj`` is permitted, ``False``
|
||||
otherwise. If obj is ``None``, should return ``True`` or ``False`` to
|
||||
indicate whether viewing of objects of this type is permitted in general
|
||||
(e.g., ``False`` will be interpreted as meaning that the current user is
|
||||
not permitted to view any object of this type).
|
||||
|
||||
The default implementation returns ``True`` if the user has either the
|
||||
"change" or "view" permission.
|
||||
@@ -2067,8 +2073,9 @@ default templates used by the :class:`ModelAdmin` views:
|
||||
:attr:`~django.db.models.Options.verbose_name_plural` to the number of
|
||||
objects that will be deleted.
|
||||
|
||||
``perms_needed`` is a set of :attr:`~django.db.models.Options.verbose_name`\s
|
||||
of the models that the user doesn't have permission to delete.
|
||||
``perms_needed`` is a set of
|
||||
:attr:`~django.db.models.Options.verbose_name`\s of the models that the
|
||||
user doesn't have permission to delete.
|
||||
|
||||
``protected`` is a list of strings representing of all the protected
|
||||
related objects that can't be deleted. The list is displayed in the
|
||||
@@ -2676,7 +2683,8 @@ If you want to allow editing and creating an ``Image`` instance on the
|
||||
``Product``, add/change views you can use
|
||||
:class:`~django.contrib.contenttypes.admin.GenericTabularInline`
|
||||
or :class:`~django.contrib.contenttypes.admin.GenericStackedInline` (both
|
||||
subclasses of :class:`~django.contrib.contenttypes.admin.GenericInlineModelAdmin`)
|
||||
subclasses of
|
||||
:class:`~django.contrib.contenttypes.admin.GenericInlineModelAdmin`)
|
||||
provided by :mod:`~django.contrib.contenttypes.admin`. They implement tabular
|
||||
and stacked visual layouts for the forms representing the inline objects,
|
||||
respectively, just like their non-generic counterparts. They behave just like
|
||||
@@ -2735,8 +2743,8 @@ directory, so make sure you name the directory in all lowercase if you are
|
||||
going to run your app on a case-sensitive filesystem.
|
||||
|
||||
To override an admin template for a specific app, copy and edit the template
|
||||
from the :source:`django/contrib/admin/templates/admin` directory, and save it to one
|
||||
of the directories you just created.
|
||||
from the :source:`django/contrib/admin/templates/admin` directory, and save it
|
||||
to one of the directories you just created.
|
||||
|
||||
For example, if we wanted to add a tool to the change list view for all the
|
||||
models in an app named ``my_app``, we would copy
|
||||
@@ -2856,8 +2864,8 @@ The list of CSS variables are defined at
|
||||
:source:`django/contrib/admin/static/admin/css/base.css`.
|
||||
|
||||
Dark mode variables, respecting the `prefers-color-scheme`_ media query, are
|
||||
defined at :source:`django/contrib/admin/static/admin/css/dark_mode.css`. This is
|
||||
linked to the document in ``{% block dark-mode-vars %}``.
|
||||
defined at :source:`django/contrib/admin/static/admin/css/dark_mode.css`. This
|
||||
is linked to the document in ``{% block dark-mode-vars %}``.
|
||||
|
||||
.. _prefers-color-scheme: https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-scheme
|
||||
|
||||
@@ -2949,7 +2957,8 @@ Templates can override or extend base admin templates as described in
|
||||
|
||||
.. attribute:: AdminSite.app_index_template
|
||||
|
||||
Path to a custom template that will be used by the admin site app index view.
|
||||
Path to a custom template that will be used by the admin site app index
|
||||
view.
|
||||
|
||||
.. attribute:: AdminSite.empty_value_display
|
||||
|
||||
@@ -3019,14 +3028,15 @@ Templates can override or extend base admin templates as described in
|
||||
* ``site_title``: :attr:`AdminSite.site_title`
|
||||
* ``site_url``: :attr:`AdminSite.site_url`
|
||||
* ``has_permission``: :meth:`AdminSite.has_permission`
|
||||
* ``available_apps``: a list of applications from the :doc:`application registry
|
||||
</ref/applications/>` available for the current user. Each entry in the
|
||||
list is a dict representing an application with the following keys:
|
||||
* ``available_apps``: a list of applications from the :doc:`application
|
||||
registry </ref/applications/>` available for the current user. Each entry
|
||||
in the list is a dict representing an application with the following
|
||||
keys:
|
||||
|
||||
* ``app_label``: the application label
|
||||
* ``app_url``: the URL of the application index in the admin
|
||||
* ``has_module_perms``: a boolean indicating if displaying and accessing of
|
||||
the module's index page is permitted for the current user
|
||||
* ``has_module_perms``: a boolean indicating if displaying and accessing
|
||||
of the module's index page is permitted for the current user
|
||||
* ``models``: a list of the models available in the application
|
||||
|
||||
Each model is a dict with the following keys:
|
||||
@@ -3102,7 +3112,8 @@ Templates can override or extend base admin templates as described in
|
||||
.. method:: AdminSite.get_model_admin(model)
|
||||
|
||||
Returns an admin class for the given model class. Raises
|
||||
``django.contrib.admin.exceptions.NotRegistered`` if a model isn't registered.
|
||||
``django.contrib.admin.exceptions.NotRegistered`` if a model isn't
|
||||
registered.
|
||||
|
||||
.. method:: AdminSite.get_log_entries(request)
|
||||
|
||||
@@ -3357,10 +3368,10 @@ password box.
|
||||
The detailed description of the modification. In the case of an edit, for
|
||||
example, the message contains a list of the edited fields. The Django admin
|
||||
site formats this content as a JSON structure, so that
|
||||
:meth:`get_change_message` can recompose a message translated in the current
|
||||
user language. Custom code might set this as a plain string though. You are
|
||||
advised to use the :meth:`get_change_message` method to retrieve this value
|
||||
instead of accessing it directly.
|
||||
:meth:`get_change_message` can recompose a message translated in the
|
||||
current user language. Custom code might set this as a plain string though.
|
||||
You are advised to use the :meth:`get_change_message` method to retrieve
|
||||
this value instead of accessing it directly.
|
||||
|
||||
``LogEntry`` methods
|
||||
--------------------
|
||||
|
||||
Reference in New Issue
Block a user