id,summary,reporter,owner,description,type,status,component,version,severity,resolution,keywords,cc,stage,has_patch,needs_docs,needs_tests,needs_better_patch,easy,ui_ux 11905,modelform_factory returns a broken form when given wrong value for fields,ben,Karen Tracey,"modelform_factory is breaking where you ask for an invalid fields option (even if the field exists): Here's a doctest that demonstrates: {{{ >>> from django.forms.models import modelform_factory, form_for_fields >>> from django.contrib.auth.models import User >>> Form = modelform_factory(User, fields=['id', 'username']) >>> Form.base_fields {'id': None, 'username': } >>> print Form() ------------------------------------------------------------ Traceback (most recent call last): ... if self.field.label is None: AttributeError: 'NoneType' object has no attribute 'label' Likewise you can specify fields that don't even exist on the model: >>> Form = modelform_factory(User, fields=['no-field', 'username']) >>> Form.base_fields {'no-field': None, 'username': } >>> print Form() ------------------------------------------------------------ Traceback (most recent call last): ... if self.field.label is None: AttributeError: 'NoneType' object has no attribute 'label' }}} This appears to be due to logic in form_for_fields (line 102 in my checkout) in the first case, and fields_for_model (line 170) in the second. I'd propose some error handling be put in place to give meaningfull exception in either of these cases rather than return a broken form to the user. I'm happy to submit a patch (I can't do it from here as I'm at work and don't have direct access to django's svn repo) but I can do it from home. Ben",,closed,Forms,1.1,,fixed,"modelform_factory, modelform, fields",,Accepted,1,0,0,0,0,0