diff options
| author | Jacob Kaplan-Moss <jacob@jacobian.org> | 2009-01-16 15:32:31 +0000 |
|---|---|---|
| committer | Jacob Kaplan-Moss <jacob@jacobian.org> | 2009-01-16 15:32:31 +0000 |
| commit | f212b24b6469b66424354bf970f3051df180b88d (patch) | |
| tree | 379b8102f38ddde424cb0005cf2f468d409f691e /tests/regressiontests/admin_widgets/models.py | |
| parent | d579e716fef9f06f04861815cf949630d8633271 (diff) | |
Cleaned up and refactored `ModelAdmin.formfield_for_dbfield`:
* The new method uses an admin configuration option (`formfield_overrides`); this makes custom admin widgets especially easy.
* Refactored what was left of `formfield_for_dbfield` into a handful of smaller methods so that it's easier to hook in and return custom fields where needed.
* These `formfield_for_*` methods now pass around `request` so that you can easily modify fields based on request (as in #3987).
Fixes #8306, #3987, #9148.
Thanks to James Bennet for the original patch; Alex Gaynor and Brian Rosner also contributed.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@9760 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'tests/regressiontests/admin_widgets/models.py')
| -rw-r--r-- | tests/regressiontests/admin_widgets/models.py | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/regressiontests/admin_widgets/models.py b/tests/regressiontests/admin_widgets/models.py index ddfc6c2cb6..345d73b0ea 100644 --- a/tests/regressiontests/admin_widgets/models.py +++ b/tests/regressiontests/admin_widgets/models.py @@ -2,9 +2,12 @@ from django.conf import settings from django.db import models from django.core.files.storage import default_storage +from django.contrib.auth.models import User class Member(models.Model): name = models.CharField(max_length=100) + birthdate = models.DateTimeField(blank=True, null=True) + gender = models.CharField(max_length=1, blank=True, choices=[('M','Male'), ('F', 'Female')]) def __unicode__(self): return self.name @@ -40,6 +43,28 @@ class Inventory(models.Model): def __unicode__(self): return self.name + +class Event(models.Model): + band = models.ForeignKey(Band) + date = models.DateField(blank=True, null=True) + start_time = models.TimeField(blank=True, null=True) + description = models.TextField(blank=True) + link = models.URLField(blank=True) + min_age = models.IntegerField(blank=True, null=True) + +class Car(models.Model): + owner = models.ForeignKey(User) + make = models.CharField(max_length=30) + model = models.CharField(max_length=30) + + def __unicode__(self): + return u"%s %s" % (self.make, self.model) + +class CarTire(models.Model): + """ + A single car tire. This to test that a user can only select their own cars. + """ + car = models.ForeignKey(Car) __test__ = {'WIDGETS_TESTS': """ >>> from datetime import datetime |
