~ubuntu-branches/debian/squeeze/python-django/squeeze

« back to all changes in this revision

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

  • Committer: Bazaar Package Importer
  • Author(s): Chris Lamb, Chris Lamb, David Spreen, Sandro Tosi
  • Date: 2008-11-19 21:31:00 UTC
  • mfrom: (1.2.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20081119213100-gp0lqhxl1qxa6dgl
Tags: 1.0.2-1
[ Chris Lamb ]
* New upstream bugfix release. Closes: #505783
* Add myself to Uploaders with ACK from Brett.

[ David Spreen ]
* Remove python-pysqlite2 from Recommends because Python 2.5 includes
  sqlite library used by Django. Closes: 497886

[ Sandro Tosi ]
* debian/control
  - switch Vcs-Browser field to viewsvn

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
 
['__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
 
"""}