Changeset 8806
- Timestamp:
- 09/01/08 14:20:03 (3 months ago)
- Files:
-
- django/trunk/django/db/models/fields/__init__.py (modified) (2 diffs)
- django/trunk/tests/modeltests/model_forms/models.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/trunk/django/db/models/fields/__init__.py
r8772 r8806 305 305 "Returns a django.forms.Field instance for this database Field." 306 306 defaults = {'required': not self.blank, 'label': capfirst(self.verbose_name), 'help_text': self.help_text} 307 if self.has_default(): 308 defaults['initial'] = self.get_default() 309 307 310 if self.choices: 308 form_class = forms.TypedChoiceField311 # Fields with choices get special treatment. 309 312 include_blank = self.blank or not (self.has_default() or 'initial' in kwargs) 310 313 defaults['choices'] = self.get_choices(include_blank=include_blank) … … 312 315 if self.null: 313 316 defaults['empty_value'] = None 314 kwargs.pop('max_length', None) 315 if self.has_default(): 316 defaults['initial'] = self.get_default() 317 318 form_class = forms.TypedChoiceField 319 320 # Many of the subclass-specific formfield arguments (min_value, 321 # max_value) don't apply for choice fields, so be sure to only pass 322 # the values that TypedChoiceField will understand. 323 for k in kwargs.keys(): 324 if k not in ('coerce', 'empty_value', 'choices', 'required', 325 'widget', 'label', 'initial', 'help_text', 326 'error_messages'): 327 del kwargs[k] 328 317 329 defaults.update(kwargs) 318 330 return form_class(**defaults) django/trunk/tests/modeltests/model_forms/models.py
r8805 r8806 56 56 article = models.TextField() 57 57 categories = models.ManyToManyField(Category, blank=True) 58 status = models. IntegerField(choices=ARTICLE_STATUS, blank=True, null=True)58 status = models.PositiveIntegerField(choices=ARTICLE_STATUS, blank=True, null=True) 59 59 60 60 def save(self):
