summaryrefslogtreecommitdiff
path: root/tests/regressiontests/admin_registration/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/regressiontests/admin_registration/models.py')
-rw-r--r--tests/regressiontests/admin_registration/models.py64
1 files changed, 64 insertions, 0 deletions
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 ...>
+
+"""}