Ticket #7244: 0001-Fixed-widget-handling-in-ModelChoicesField.__init__.patch
| File 0001-Fixed-widget-handling-in-ModelChoicesField.__init__.patch, 2.5 kB (added by sebastian_noack, 5 months ago) |
|---|
-
a/django/newforms/models.py
old new 13 13 from util import ValidationError, ErrorList 14 14 from forms import BaseForm, get_declared_fields 15 15 from fields import Field, ChoiceField, EMPTY_VALUES 16 from widgets import Select, SelectMultiple,MultipleHiddenInput16 from widgets import MultipleHiddenInput 17 17 18 18 __all__ = ( 19 19 'ModelForm', 'BaseModelForm', 'model_to_dict', 'fields_for_model', … … 301 301 } 302 302 303 303 def __init__(self, queryset, empty_label=u"---------", cache_choices=False, 304 required=True, widget= Select, label=None, initial=None,304 required=True, widget=None, label=None, initial=None, 305 305 help_text=None, *args, **kwargs): 306 306 self.empty_label = empty_label 307 307 self.cache_choices = cache_choices … … 346 346 # the queryset. 347 347 return ModelChoiceIterator(self) 348 348 349 choices = property(_get_choices, ChoiceField._set_choices) 349 def _set_choices(self, value): 350 # This method is copied from ChoiceField._set_choices(). It's necessary 351 # because property() doesn't allow a subclass to overwrite only 352 # _get_choices without implementing _set_choices. 353 self._choices = self.widget.choices = list(value) 354 355 choices = property(_get_choices, _set_choices) 350 356 351 357 def clean(self, value): 352 358 Field.clean(self, value) … … 368 374 } 369 375 370 376 def __init__(self, queryset, cache_choices=False, required=True, 371 widget= SelectMultiple, label=None, initial=None,372 help_text=None,*args, **kwargs):377 widget=None, label=None, initial=None, help_text=None, 378 *args, **kwargs): 373 379 super(ModelMultipleChoiceField, self).__init__(queryset, None, 374 380 cache_choices, required, widget, label, initial, help_text, 375 381 *args, **kwargs)
