summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Rosner <brosner@gmail.com>2008-03-05 04:09:35 +0000
committerBrian Rosner <brosner@gmail.com>2008-03-05 04:09:35 +0000
commitdac6f2d37b3b1447cd1aced0567be3b361551dfb (patch)
treecb2a4d46fe59969f9f3b6eea503bc90dca169621
parentfb3994bdfc296701ed156adbba9e898e17fa1c03 (diff)
newforms-admin: Fixed #6202 -- FilteredSelectMultiple is now wrapped with RelatedFieldWidgetWrapper to display the add button.
git-svn-id: http://code.djangoproject.com/svn/django/branches/newforms-admin@7195 bcc190cf-cafb-0310-a4f2-bffc1f526a37
-rw-r--r--django/contrib/admin/options.py14
1 files changed, 6 insertions, 8 deletions
diff --git a/django/contrib/admin/options.py b/django/contrib/admin/options.py
index ab3291834d..ec32c897a5 100644
--- a/django/contrib/admin/options.py
+++ b/django/contrib/admin/options.py
@@ -145,11 +145,6 @@ class BaseModelAdmin(object):
If kwargs are given, they're passed to the form Field's constructor.
"""
- # For ManyToManyFields with a filter interface, use a special widget.
- if isinstance(db_field, models.ManyToManyField) and db_field.name in (self.filter_vertical + self.filter_horizontal):
- kwargs['widget'] = widgets.FilteredSelectMultiple(db_field.verbose_name, (db_field.name in self.filter_vertical))
- return db_field.formfield(**kwargs)
-
# For DateTimeFields, use a special field and widget.
if isinstance(db_field, models.DateTimeField):
kwargs['form_class'] = forms.SplitDateTimeField
@@ -176,9 +171,12 @@ class BaseModelAdmin(object):
if isinstance(db_field, models.ForeignKey) and db_field.name in self.raw_id_fields:
kwargs['widget'] = widgets.ForeignKeyRawIdWidget(db_field.rel)
else:
- if isinstance(db_field, models.ManyToManyField) and db_field.name in self.raw_id_fields:
- kwargs['widget'] = widgets.ManyToManyRawIdWidget(db_field.rel)
- kwargs['help_text'] = ''
+ if isinstance(db_field, models.ManyToManyField):
+ if db_field.name in self.raw_id_fields:
+ kwargs['widget'] = widgets.ManyToManyRawIdWidget(db_field.rel)
+ kwargs['help_text'] = ''
+ elif db_field.name in (self.filter_vertical + self.filter_horizontal):
+ kwargs['widget'] = widgets.FilteredSelectMultiple(db_field.verbose_name, (db_field.name in self.filter_vertical))
# Wrap the widget's render() method with a method that adds
# extra HTML to the end of the rendered output.
formfield = db_field.formfield(**kwargs)