1
0
mirror of https://github.com/django/django.git synced 2025-10-24 14:16:09 +00:00

Fixed #92 -- meta.Admin 'fields' parameter is now optional. If it's not given, Django will use all editable fields by default. This cuts down on redundancy. Also updated relevant docs to reflect the change.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@265 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Adrian Holovaty
2005-07-21 03:46:16 +00:00
parent 304b08e325
commit c21f6ecee2
6 changed files with 24 additions and 41 deletions

View File

@@ -304,9 +304,9 @@ Field Types
many toppings on a pizza)::
meta.ForeignKey(Pizza)
.. admonition:: Note
To create a recursive relationship, use a ``ForeignKey`` that relates
to ``"self"`` (i.e. ``meta.ForeignKey("self")``).
@@ -568,7 +568,7 @@ Admin options
The ``admin`` field in the model tells Django how to construct the admin
interface for the object. The field is an instance of the ``meta.Admin``
object, which has the following options (of which only ``fields`` is required):
object, which has the following options. All are optional.
``date_hierarchy``
To allow filtering of objects in the admin by date, set ``date_hierarchy``
@@ -616,6 +616,11 @@ object, which has the following options (of which only ``fields`` is required):
.. image:: http://media.djangoproject.com/img/doc/flatfiles_admin.png
If ``fields`` isn't given but a model does define ``admin`` as a
``meta.Admin`` object, 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`` in the model.
``js``
A list of strings representing URLs of JavaScript files to link into the
admin screen. This can be used to tweak a given type of admin page in JS or

View File

@@ -138,15 +138,7 @@ classes::
meta.TextField('article'),
meta.ForeignKey(Reporter),
)
admin = meta.Admin(
fields = (
(None, {'fields': ('headline', 'article')}),
('Extra stuff', {'fields': ('pub_date', 'reporter_id')}),
),
)
The ``admin.fields`` defines the layout of your admin form. Each element in the
fields tuple corresponds to a ``<fieldset>`` in the form.
admin = meta.Admin()
The philosophy here is that your site is edited by a staff, or a client, or
maybe just you -- and you don't want to have to deal with creating backend

View File

@@ -92,11 +92,7 @@ file and make the following change to add an ``admin`` attribute::
fields = (
# ...
)
admin = meta.Admin(
fields = (
(None, {'fields': ('question', 'pub_date')}),
),
)
admin = meta.Admin()
Restart your development Web server, and reload the Django admin page. You'll
have to restart the server each time you make a change to Python code -- but
@@ -163,8 +159,8 @@ Customize the admin form
Take a few minutes to marvel at all the code you didn't have to write.
Let's customize this a bit. We can reorder the fields by changing the
order of the field names in the ``admin`` attribute of the model::
Let's customize this a bit. We can reorder the fields by explicitly adding a
``fields`` parameter to ``meta.Admin``::
admin = meta.Admin(
fields = (
@@ -226,15 +222,7 @@ Here's what that would look like::
class Choice(meta.Model):
# ...
admin = meta.Admin(
fields = (
(None, {'fields': ('poll_id', 'choice', 'votes')}),
),
)
(Note that we used "poll_id" to refer to the ``ForeignKey(Poll)`` field. The
field name is automatically calculated from the model's class name, lowercased,
plus '_id'.)
admin = meta.Admin()
Now "Choices" is an available option in the Django admin. The "Add choice" form
looks like this:
@@ -318,9 +306,6 @@ on the change list page for the object::
class Poll(meta.Model):
# ...
admin = meta.Admin(
fields = (
(None, {'fields': ('question', 'pub_date')}),
),
list_display = ('question', 'pub_date'),
)