Skip to content

Commit

Permalink
Fixed #9669 -- Corrected an answer in the admin FAQ that is wrong in …
Browse files Browse the repository at this point in the history
…a post-newforms-admin world. Thanks to Alex for the report.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@11175 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information
freakboy3742 committed Jul 3, 2009
1 parent 8728507 commit 36954a0
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 10 deletions.
19 changes: 9 additions & 10 deletions docs/faq/admin.txt
Expand Up @@ -37,20 +37,19 @@ Set the :setting:`CACHE_MIDDLEWARE_ANONYMOUS_ONLY` setting to ``True``. See the
How do I automatically set a field's value to the user who last edited the object in the admin?
-----------------------------------------------------------------------------------------------

At this point, Django doesn't have an official way to do this. But it's an oft-requested
feature, so we're discussing how it can be implemented. The problem is we don't want to couple
the model layer with the admin layer with the request layer (to get the current user). It's a
tricky problem.

One person hacked up a `solution that doesn't require patching Django`_, but note that it's an
unofficial solution, and there's no guarantee it won't break at some point.

.. _solution that doesn't require patching Django: http://lukeplant.me.uk/blog.php?id=1107301634
The :class:`ModelAdmin` class provides customization hooks that allow you to transform
an object as it saved, using details from the request. By extracting the current user
from the request, and customizing the :meth:`ModelAdmin.save_model` hook, you can update
an object to reflect the user that edited it. See :ref:`the documentation on ModelAdmin
methods <model-admin-methods>` for an example.

How do I limit admin access so that objects can only be edited by the users who created them?
---------------------------------------------------------------------------------------------

See the answer to the previous question.
The :class:`ModelAdmin` class also provides customization hooks that allow you to control the
visibility and editability of objects in the admin. Using the same trick of extracting the
user from the request, the :meth:`ModelAdmin.queryset` and :meth:`ModelAdmin.has_change_permission`
can be used to control the visibility and editability of objects in the admin.

My admin-site CSS and images showed up fine using the development server, but they're not displaying when using mod_python.
---------------------------------------------------------------------------------------------------------------------------
Expand Down
2 changes: 2 additions & 0 deletions docs/ref/contrib/admin/index.txt
Expand Up @@ -704,6 +704,8 @@ objects. Templates can override or extend base admin templates as described in
If you don't specify this attribute, a default template shipped with Django
that provides the standard appearance is used.

.. _model-admin-methods:

``ModelAdmin`` methods
----------------------

Expand Down

0 comments on commit 36954a0

Please sign in to comment.