summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorTimo Graham <timograham@gmail.com>2011-02-02 20:57:33 +0000
committerTimo Graham <timograham@gmail.com>2011-02-02 20:57:33 +0000
commitf6606da3e835bf365550862833408d3733bb4d97 (patch)
tree4cdc26c24c26be4c127cac18b2780047e5a3b0f8 /docs
parent01fce67c1731aa21acae6925e355ff84d32fb41b (diff)
[1.2.X] Fixed #15208 - Document ModelAdmin.formfield_for_choice_field; thanks julien.
Backport of r15399 from trunk. git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.2.X@15400 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'docs')
-rw-r--r--docs/ref/contrib/admin/index.txt19
1 files changed, 19 insertions, 0 deletions
diff --git a/docs/ref/contrib/admin/index.txt b/docs/ref/contrib/admin/index.txt
index da17ed050f..cfc15ed8f5 100644
--- a/docs/ref/contrib/admin/index.txt
+++ b/docs/ref/contrib/admin/index.txt
@@ -887,6 +887,25 @@ to multiple owners -- a many to many relationship -- you could filter the
kwargs["queryset"] = Car.objects.filter(owner=request.user)
return super(MyModelAdmin, self).formfield_for_manytomany(db_field, request, **kwargs)
+.. method:: ModelAdmin.formfield_for_choice_field(self, db_field, request, **kwargs)
+
+ Like the ``formfield_for_foreignkey`` and ``formfield_for_manytomany``
+ methods, the ``formfield_for_choice_field`` method can be overridden to
+ change the default formfield for a field that has declared choices. For
+ example, if the choices available to a superuser should be different than
+ those available to regular staff, you could proceed as follows::
+
+ class MyModelAdmin(admin.ModelAdmin):
+ def formfield_for_choice_field(self, db_field, request, **kwargs):
+ if db_field.name == "status":
+ kwargs['choices'] = (
+ ('accepted', 'Accepted'),
+ ('denied', 'Denied'),
+ )
+ if request.user.is_superuser:
+ kwargs['choices'] += (('ready', 'Ready for deployment'),)
+ return super(MyModelAdmin, self).formfield_for_choice_field(db_field, request, **kwargs)
+
.. method:: ModelAdmin.has_add_permission(self, request)
Should return ``True`` if adding an object is permitted, ``False``