diff options
| author | Jacob Kaplan-Moss <jacob@jacobian.org> | 2008-07-23 18:58:06 +0000 |
|---|---|---|
| committer | Jacob Kaplan-Moss <jacob@jacobian.org> | 2008-07-23 18:58:06 +0000 |
| commit | 7b3cf13d3249d4e4bcf152e27631ea7ec4a55412 (patch) | |
| tree | 1a225529fb266cd772bb936950951d31107eaae8 /tests/regressiontests | |
| parent | 508016c0f4ea035af9f46d87af6c0ed40171acf0 (diff) | |
Improved admin model registration options: you can now register using register(Model, **options) and even register(Model, ModelAdmin, **options). This isn't documented yet -- a much expanded version of docs/admin.txt is on the way.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@8063 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'tests/regressiontests')
| -rw-r--r-- | tests/regressiontests/admin_registration/__init__.py | 0 | ||||
| -rw-r--r-- | tests/regressiontests/admin_registration/models.py | 64 |
2 files changed, 64 insertions, 0 deletions
diff --git a/tests/regressiontests/admin_registration/__init__.py b/tests/regressiontests/admin_registration/__init__.py new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/tests/regressiontests/admin_registration/__init__.py diff --git a/tests/regressiontests/admin_registration/models.py b/tests/regressiontests/admin_registration/models.py new file mode 100644 index 0000000000..fdfa3691b8 --- /dev/null +++ b/tests/regressiontests/admin_registration/models.py @@ -0,0 +1,64 @@ +""" +Tests for various ways of registering models with the admin site. +""" + +from django.db import models +from django.contrib import admin + +class Person(models.Model): + name = models.CharField(max_length=200) + +class Place(models.Model): + name = models.CharField(max_length=200) + +__test__ = {'API_TESTS':""" + + +# Bare registration +>>> site = admin.AdminSite() +>>> site.register(Person) +>>> site._registry[Person] +<django.contrib.admin.options.ModelAdmin object at ...> + +# Registration with a ModelAdmin +>>> site = admin.AdminSite() +>>> class NameAdmin(admin.ModelAdmin): +... list_display = ['name'] +... save_on_top = True + +>>> site.register(Person, NameAdmin) +>>> site._registry[Person] +<regressiontests.admin_registration.models.NameAdmin object at ...> + +# You can't register the same model twice +>>> site.register(Person) +Traceback (most recent call last): + ... +AlreadyRegistered: The model Person is already registered + +# Registration using **options +>>> site = admin.AdminSite() +>>> site.register(Person, search_fields=['name']) +>>> site._registry[Person].search_fields +['name'] + +# With both admin_class and **options the **options override the fields in +# the admin class. +>>> site = admin.AdminSite() +>>> site.register(Person, NameAdmin, search_fields=["name"], list_display=['__str__']) +>>> site._registry[Person].search_fields +['name'] +>>> site._registry[Person].list_display +['__str__'] +>>> site._registry[Person].save_on_top +True + +# You can also register iterables instead of single classes -- a nice shortcut +>>> site = admin.AdminSite() +>>> site.register([Person, Place], search_fields=['name']) +>>> site._registry[Person] +<django.contrib.admin.sites.PersonAdmin object at ...> +>>> site._registry[Place] +<django.contrib.admin.sites.PlaceAdmin object at ...> + +"""} |
