Changeset 5119
- Timestamp:
- 04/28/07 09:18:03 (1 year ago)
- Files:
-
- django/trunk/django/db/models/fields/__init__.py (modified) (1 diff)
- django/trunk/tests/modeltests/model_forms/models.py (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/trunk/django/db/models/fields/__init__.py
r5118 r5119 345 345 "Returns a django.newforms.Field instance for this database Field." 346 346 defaults = {'required': not self.blank, 'label': capfirst(self.verbose_name), 'help_text': self.help_text} 347 if self.choices: 348 defaults['widget'] = forms.Select(choices=self.get_choices()) 347 349 defaults.update(kwargs) 348 350 return form_class(**defaults) django/trunk/tests/modeltests/model_forms/models.py
r4961 r5119 25 25 from django.db import models 26 26 27 ARTICLE_STATUS = ( 28 (1, 'Draft'), 29 (2, 'Pending'), 30 (3, 'Live'), 31 ) 32 27 33 class Category(models.Model): 28 34 name = models.CharField(maxlength=20) … … 45 51 article = models.TextField() 46 52 categories = models.ManyToManyField(Category, blank=True) 53 status = models.IntegerField(choices=ARTICLE_STATUS, blank=True, null=True) 47 54 48 55 def save(self): … … 148 155 >>> w.save() 149 156 150 ManyToManyFields are represented by a MultipleChoiceField, and ForeignKeys are151 represented by a ChoiceField.157 ManyToManyFields are represented by a MultipleChoiceField, ForeignKeys and any 158 fields with the 'choices' attribute are represented by a ChoiceField. 152 159 >>> ArticleForm = form_for_model(Article) 153 160 >>> f = ArticleForm(auto_id=False) … … 161 168 </select></td></tr> 162 169 <tr><th>Article:</th><td><textarea rows="10" cols="40" name="article"></textarea></td></tr> 170 <tr><th>Status:</th><td><select name="status"> 171 <option value="" selected="selected">---------</option> 172 <option value="1">Draft</option> 173 <option value="2">Pending</option> 174 <option value="3">Live</option> 175 </select></td></tr> 163 176 <tr><th>Categories:</th><td><select multiple="multiple" name="categories"> 164 177 <option value="1">Entertainment</option> … … 201 214 </select></li> 202 215 <li>Article: <textarea rows="10" cols="40" name="article">Hello.</textarea></li> 216 <li>Status: <select name="status"> 217 <option value="" selected="selected">---------</option> 218 <option value="1">Draft</option> 219 <option value="2">Pending</option> 220 <option value="3">Live</option> 221 </select></li> 203 222 <li>Categories: <select multiple="multiple" name="categories"> 204 223 <option value="1">Entertainment</option> … … 233 252 </select></li> 234 253 <li>Article: <textarea rows="10" cols="40" name="article">Hello.</textarea></li> 254 <li>Status: <select name="status"> 255 <option value="" selected="selected">---------</option> 256 <option value="1">Draft</option> 257 <option value="2">Pending</option> 258 <option value="3">Live</option> 259 </select></li> 235 260 <li>Categories: <select multiple="multiple" name="categories"> 236 261 <option value="1" selected="selected">Entertainment</option> … … 311 336 </select></li> 312 337 <li>Article: <textarea rows="10" cols="40" name="article"></textarea></li> 338 <li>Status: <select name="status"> 339 <option value="" selected="selected">---------</option> 340 <option value="1">Draft</option> 341 <option value="2">Pending</option> 342 <option value="3">Live</option> 343 </select></li> 313 344 <li>Categories: <select multiple="multiple" name="categories"> 314 345 <option value="1">Entertainment</option> … … 330 361 </select></li> 331 362 <li>Article: <textarea rows="10" cols="40" name="article"></textarea></li> 363 <li>Status: <select name="status"> 364 <option value="" selected="selected">---------</option> 365 <option value="1">Draft</option> 366 <option value="2">Pending</option> 367 <option value="3">Live</option> 368 </select></li> 332 369 <li>Categories: <select multiple="multiple" name="categories"> 333 370 <option value="1">Entertainment</option>
