Changeset 4391
- Timestamp:
- 01/22/07 00:48:10 (2 years ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/branches/newforms-admin/django/contrib/admin/options.py
r4382 r4391 1 1 from django import oldforms, template 2 2 from django import newforms as forms 3 from django.contrib.admin import widgets 3 4 from django.core.exceptions import ImproperlyConfigured, PermissionDenied 4 5 from django.db import models … … 196 197 yield fs 197 198 199 def formfield_for_dbfield(self, db_field, **kwargs): 200 """ 201 Hook for specifying the form Field instance for a given database Field 202 instance. 203 204 If kwargs are given, they're passed to the form Field's constructor. 205 """ 206 # For filter_interface ManyToManyFields, use a special Widget. 207 if isinstance(db_field, models.ManyToManyField) and db_field.rel.filter_interface: 208 widget = widgets.FilteredSelectMultiple(db_field.verbose_name, db_field.rel.filter_interface-1) 209 return db_field.formfield(widget=widget) 210 return db_field.formfield(**kwargs) 211 198 212 def has_add_permission(self, request): 199 213 "Returns True if the given request has permission to add an object." … … 239 253 post_url = '../../../' 240 254 241 ModelForm = forms.form_for_model(model )255 ModelForm = forms.form_for_model(model, formfield_callback=self.formfield_for_dbfield) 242 256 243 257 if request.POST: … … 304 318 raise Http404('%s object with primary key %r does not exist' % (model_name, escape(object_id))) 305 319 306 ModelForm = forms.form_for_instance(obj )320 ModelForm = forms.form_for_instance(obj, formfield_callback=self.formfield_for_dbfield) 307 321 308 322 if request.POST: django/branches/newforms-admin/django/contrib/admin/templatetags/admin_modify.py
r4382 r4391 161 161 auto_populated_field_script = register.simple_tag(auto_populated_field_script) 162 162 163 def filter_interface_script_maybe(bound_field):164 f = bound_field.field165 if f.rel and isinstance(f.rel, models.ManyToManyRel) and f.rel.filter_interface:166 return '<script type="text/javascript">addEvent(window, "load", function(e) {' \167 ' SelectFilter.init("id_%s", "%s", %s, "%s"); });</script>\n' % (168 f.name, f.verbose_name.replace('"', '\\"'), f.rel.filter_interface-1, settings.ADMIN_MEDIA_PREFIX)169 else:170 return ''171 filter_interface_script_maybe = register.simple_tag(filter_interface_script_maybe)172 173 163 def field_widget(parser, token): 174 164 bits = token.contents.split()
