Author: russellm Date: 2009-04-16 07:46:58 -0500 (Thu, 16 Apr 2009) New Revision: 10564
Modified: django/trunk/docs/ref/contrib/admin/index.txt django/trunk/docs/ref/models/fields.txt Log: Fixed #10776 -- Added metadata targets for the contrib.admin docs, and used one of those targets to clarify the SlugField docs. Thanks to ernop for the suggestion, and timo for the patch. Modified: django/trunk/docs/ref/contrib/admin/index.txt =================================================================== --- django/trunk/docs/ref/contrib/admin/index.txt 2009-04-16 12:46:15 UTC (rev 10563) +++ django/trunk/docs/ref/contrib/admin/index.txt 2009-04-16 12:46:58 UTC (rev 10564) @@ -7,6 +7,8 @@ .. module:: django.contrib.admin :synopsis: Django's admin site. +.. currentmodule:: django.contrib.admin + One of the most powerful parts of Django is the automatic admin interface. It reads metadata in your model to provide a powerful and production-ready interface that content producers can immediately use to start adding content to @@ -46,7 +48,7 @@ :maxdepth: 1 actions - + .. seealso:: For information about serving the media files (images, JavaScript, and CSS) @@ -55,6 +57,8 @@ ``ModelAdmin`` objects ====================== +.. class:: ModelAdmin + The ``ModelAdmin`` class is the representation of a model in the admin interface. These are stored in a file named ``admin.py`` in your application. Let's take a look at a very simple example of the ``ModelAdmin``:: @@ -90,8 +94,7 @@ class AuthorAdmin(admin.ModelAdmin): date_hierarchy = 'pub_date' -``date_hierarchy`` -~~~~~~~~~~~~~~~~~~ +.. attribute:: ModelAdmin.date_hierarchy Set ``date_hierarchy`` to the name of a ``DateField`` or ``DateTimeField`` in your model, and the change list page will include a date-based drilldown @@ -101,8 +104,7 @@ date_hierarchy = 'pub_date' -``form`` -~~~~~~~~ +.. attribute:: ModelAdmin.form By default a ``ModelForm`` is dynamically created for your model. It is used to create the form presented on both the add/change pages. You can easily @@ -111,8 +113,7 @@ For an example see the section `Adding custom validation to the admin`_. -``fieldsets`` -~~~~~~~~~~~~~ +.. attribute:: ModelAdmin.fieldsets Set ``fieldsets`` to control the layout of admin "add" and "change" pages. @@ -191,8 +192,7 @@ ``django.utils.html.escape()`` to escape any HTML special characters. -``fields`` -~~~~~~~~~~ +.. attribute:: ModelAdmin.fields Use this option as an alternative to ``fieldsets`` if the layout does not matter and if you want to only show a subset of the available fields in the @@ -211,8 +211,7 @@ dictionary key that is within the ``fieldsets`` option, as described in the previous section. -``exclude`` -~~~~~~~~~~~ +.. attribute:: ModelAdmin.exclude This attribute, if given, should be a list of field names to exclude from the form. @@ -237,22 +236,19 @@ ``birth_date``, the forms resulting from the above declarations will contain exactly the same fields. -``filter_horizontal`` -~~~~~~~~~~~~~~~~~~~~~ +.. attribute:: ModelAdmin.filter_horizontal Use a nifty unobtrusive JavaScript "filter" interface instead of the usability-challenged ``<select multiple>`` in the admin form. The value is a list of fields that should be displayed as a horizontal filter interface. See ``filter_vertical`` to use a vertical interface. -``filter_vertical`` -~~~~~~~~~~~~~~~~~~~ +.. attribute:: ModelAdmin.filter_vertical Same as ``filter_horizontal``, but is a vertical display of the filter interface. -``list_display`` -~~~~~~~~~~~~~~~~ +.. attribute:: ModelAdmin.list_display Set ``list_display`` to control which fields are displayed on the change list page of the admin. @@ -389,8 +385,7 @@ The above will tell Django to order by the ``first_name`` field when trying to sort by ``colored_first_name`` in the admin. -``list_display_links`` -~~~~~~~~~~~~~~~~~~~~~~ +.. attribute:: ModelAdmin.list_display_links Set ``list_display_links`` to control which fields in ``list_display`` should be linked to the "change" page for an object. @@ -415,8 +410,7 @@ .. _admin-list-editable: -``list_editable`` -~~~~~~~~~~~~~~~~~ +.. attribute:: ModelAdmin.list_editable .. versionadded:: 1.1 @@ -441,8 +435,7 @@ You'll get a validation error if any of these rules are broken. -``list_filter`` -~~~~~~~~~~~~~~~ +.. attribute:: ModelAdmin.list_filter Set ``list_filter`` to activate filters in the right sidebar of the change list page of the admin. This should be a list of field names, and each specified @@ -462,14 +455,12 @@ (This example also has ``search_fields`` defined. See below.) -``list_per_page`` -~~~~~~~~~~~~~~~~~ +.. attribute:: ModelAdmin.list_per_page Set ``list_per_page`` to control how many items appear on each paginated admin change list page. By default, this is set to ``100``. -``list_select_related`` -~~~~~~~~~~~~~~~~~~~~~~~ +.. attribute:: ModelAdmin.list_select_related Set ``list_select_related`` to tell Django to use ``select_related()`` in retrieving the list of objects on the admin change list page. This can save you @@ -483,13 +474,11 @@ For more on ``select_related()``, see :ref:`the select_related() docs <select-related>`. -``inlines`` -~~~~~~~~~~~ +.. attribute:: ModelAdmin.inlines See ``InlineModelAdmin`` objects below. -``ordering`` -~~~~~~~~~~~~ +.. attribute:: ModelAdmin.ordering Set ``ordering`` to specify how objects on the admin change list page should be ordered. This should be a list or tuple in the same format as a model's @@ -502,8 +491,7 @@ Django will only honor the first element in the list/tuple; any others will be ignored. -``prepopulated_fields`` -~~~~~~~~~~~~~~~~~~~~~~~ +.. attribute:: ModelAdmin.prepopulated_fields Set ``prepopulated_fields`` to a dictionary mapping field names to the fields it should prepopulate from:: @@ -521,8 +509,7 @@ ``prepopulated_fields`` doesn't accept ``DateTimeField``, ``ForeignKey``, nor ``ManyToManyField`` fields. -``radio_fields`` -~~~~~~~~~~~~~~~~ +.. attribute:: ModelAdmin.radio_fields By default, Django's admin uses a select-box interface (<select>) for fields that are ``ForeignKey`` or have ``choices`` set. If a field is present @@ -538,8 +525,7 @@ Don't include a field in ``radio_fields`` unless it's a ``ForeignKey`` or has ``choices`` set. -``raw_id_fields`` -~~~~~~~~~~~~~~~~~ +.. attribute:: ModelAdmin.raw_id_fields By default, Django's admin uses a select-box interface (<select>) for fields that are ``ForeignKey``. Sometimes you don't want to incur the @@ -552,8 +538,7 @@ class ArticleAdmin(admin.ModelAdmin): raw_id_fields = ("newspaper",) -``save_as`` -~~~~~~~~~~~ +.. attribute:: ModelAdmin.save_as Set ``save_as`` to enable a "save as" feature on admin change forms. @@ -566,8 +551,7 @@ By default, ``save_as`` is set to ``False``. -``save_on_top`` -~~~~~~~~~~~~~~~ +.. attribute:: ModelAdmin.save_on_top Set ``save_on_top`` to add save buttons across the top of your admin change forms. @@ -577,8 +561,7 @@ By default, ``save_on_top`` is set to ``False``. -``search_fields`` -~~~~~~~~~~~~~~~~~ +.. attribute:: ModelAdmin.search_fields Set ``search_fields`` to enable a search box on the admin change list page. This should be set to a list of field names that will be searched whenever @@ -635,8 +618,7 @@ Performs a full-text match. This is like the default search method but uses an index. Currently this is only available for MySQL. -``formfield_overrides`` -~~~~~~~~~~~~~~~~~~~~~~~ +.. attribute:: ModelAdmin.formfield_overrides This provides a quick-and-dirty way to override some of the :class:`~django.forms.Field` options for use in the admin. @@ -676,14 +658,13 @@ that have ``raw_id_fields`` or ``radio_fields`` set. That's because ``raw_id_fields`` and ``radio_fields`` imply custom widgets of their own. -``actions`` -~~~~~~~~~~~ +.. attribute:: ModelAdmin.actions A list of actions to make available on the change list page. See :ref:`ref-contrib-admin-actions` for details. -``actions_on_top``, ``actions_on_bottom`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.. attribute:: ModelAdmin.actions_on_top +.. 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; @@ -692,8 +673,7 @@ ``ModelAdmin`` methods ---------------------- -``save_model(self, request, obj, form, change)`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.. method:: ModelAdmin.save_model(self, request, obj, form, change) The ``save_model`` method is given the ``HttpRequest``, a model instance, a ``ModelForm`` instance and a boolean value based on whether it is adding or @@ -706,8 +686,7 @@ obj.user = request.user obj.save() -``save_formset(self, request, form, formset, change)`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.. method:: ModelAdmin.save_formset(self, request, form, formset, change) The ``save_formset`` method is given the ``HttpRequest``, the parent ``ModelForm`` instance and a boolean value based on whether it is adding or @@ -724,8 +703,7 @@ instance.save() formset.save_m2m() -``get_urls(self)`` -~~~~~~~~~~~~~~~~~~~ +.. method:: ModelAdmin.get_urls(self) .. versionadded:: 1.1 @@ -769,8 +747,7 @@ This wrapping will protect ``self.my_view`` from unauthorized access. -``formfield_for_foreignkey(self, db_field, request, **kwargs)`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.. method:: ModelAdmin.formfield_for_foreignkey(self, db_field, request, **kwargs) .. versionadded:: 1.1 @@ -846,7 +823,7 @@ author = models.ForeignKey(Author) title = models.CharField(max_length=100) -You can edit the books authored by an author on the author page. You add +You can edit the books authored by an author on the author page. You add inlines to a model by specifying them in a ``ModelAdmin.inlines``:: class BookInline(admin.TabularInline): @@ -1167,7 +1144,7 @@ All the admin views use :ref:`named URL patterns <naming-url-patterns>` so it's easy to link to admin views with ``urlresolvers.reverse`` or the :ttag:`url` -template tag. +template tag. Each model gets its own set of views and its own name using the model's app name and model name. For example, the "add" view for a ``Choice`` model in a @@ -1274,8 +1251,9 @@ .. versionadded:: 1.1 -It possible to add additional views to the admin site in the same way one can -add them to ``ModelAdmins``. This by using the ``get_urls()`` method on an -AdminSite in the same way as `described above`__ - -__ `get_urls(self)`_ +Just like ``ModelAdmin``, ``AdminSite`` provides a +:meth:`~django.contrib.admin.ModelAdmin.get_urls()` method +that can be overridden to define additional views for the site. To add +a new view to your admin site, extend the base +:meth:`~django.contrib.admin.ModelAdmin.get_urls()` method to include +a pattern for your new view. Modified: django/trunk/docs/ref/models/fields.txt =================================================================== --- django/trunk/docs/ref/models/fields.txt 2009-04-16 12:46:15 UTC (rev 10563) +++ django/trunk/docs/ref/models/fields.txt 2009-04-16 12:46:58 UTC (rev 10564) @@ -689,6 +689,10 @@ Implies setting :attr:`Field.db_index` to ``True``. +It is often useful to automatically prepopulate a SlugField based on the value +of some other value. You can do this automatically in the admin using +:attr:`~django.contrib.admin.ModelAdmin.prepopulated_fields`. + ``SmallIntegerField`` --------------------- --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django updates" group. To post to this group, send email to django-updates@googlegroups.com To unsubscribe from this group, send email to django-updates+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/django-updates?hl=en -~----------~----~----~----~------~----~------~--~---