~ubuntu-branches/ubuntu/quantal/python-django/quantal

« back to all changes in this revision

Viewing changes to tests/regressiontests/admin_registration/models.py

  • Committer: Bazaar Package Importer
  • Author(s): Chris Lamb
  • Date: 2009-07-29 11:26:28 UTC
  • mfrom: (1.1.8 upstream) (4.1.5 sid)
  • Revision ID: james.westby@ubuntu.com-20090729112628-pg09ino8sz0sj21t
Tags: 1.1-1
* New upstream release.
* Merge from experimental:
  - Ship FastCGI initscript and /etc/default file in python-django's examples
    directory (Closes: #538863)
  - Drop "05_10539-sphinx06-compatibility.diff"; it has been applied
    upstream.
  - Bump Standards-Version to 3.8.2.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
"""
 
2
Tests for various ways of registering models with the admin site.
 
3
"""
 
4
 
 
5
from django.db import models
 
6
from django.contrib import admin
 
7
 
 
8
class Person(models.Model):
 
9
    name = models.CharField(max_length=200)
 
10
 
 
11
class Place(models.Model):
 
12
    name = models.CharField(max_length=200)
 
13
 
 
14
__test__ = {'API_TESTS':"""
 
15
 
 
16
 
 
17
# Bare registration
 
18
>>> site = admin.AdminSite()
 
19
>>> site.register(Person)
 
20
>>> site._registry[Person]
 
21
<django.contrib.admin.options.ModelAdmin object at ...>
 
22
 
 
23
# Registration with a ModelAdmin
 
24
>>> site = admin.AdminSite()
 
25
>>> class NameAdmin(admin.ModelAdmin):
 
26
...     list_display = ['name']
 
27
...     save_on_top = True
 
28
 
 
29
>>> site.register(Person, NameAdmin)
 
30
>>> site._registry[Person]
 
31
<regressiontests.admin_registration.models.NameAdmin object at ...>
 
32
 
 
33
# You can't register the same model twice
 
34
>>> site.register(Person)
 
35
Traceback (most recent call last):
 
36
    ...
 
37
AlreadyRegistered: The model Person is already registered
 
38
 
 
39
# Registration using **options
 
40
>>> site = admin.AdminSite()
 
41
>>> site.register(Person, search_fields=['name'])
 
42
>>> site._registry[Person].search_fields
 
43
['name']
 
44
 
 
45
# With both admin_class and **options the **options override the fields in
 
46
# the admin class.
 
47
>>> site = admin.AdminSite()
 
48
>>> site.register(Person, NameAdmin, search_fields=["name"], list_display=['__str__'])
 
49
>>> site._registry[Person].search_fields
 
50
['name']
 
51
>>> site._registry[Person].list_display
 
52
['action_checkbox', '__str__']
 
53
>>> site._registry[Person].save_on_top
 
54
True
 
55
 
 
56
# You can also register iterables instead of single classes -- a nice shortcut
 
57
>>> site = admin.AdminSite()
 
58
>>> site.register([Person, Place], search_fields=['name'])
 
59
>>> site._registry[Person]
 
60
<django.contrib.admin.sites.PersonAdmin object at ...>
 
61
>>> site._registry[Place]
 
62
<django.contrib.admin.sites.PlaceAdmin object at ...>
 
63
 
 
64
"""}