I have a feeling that this is too much to ask from the framework, after all it shouldn't have to teach python, so I'm -0 on the proposed change.
Additionally, if users specify fields = 'body' with no parenthesis they would get the same error message and probably think "but I don't need a comma, it's just one field" or even write fields = 'body', which is just horrible.. Cheers, AT On Mar 22, 2012 10:44 AM, "Sachin Gupta" <sachingupta...@gmail.com> wrote: > I have the following ModelForm, that has a valid field body. > > class PostForm(ModelForm): > > class Meta: > model = Post > fields = ('body') > > However when I validate the models, the following error comes up > > django.core.exceptions.**FieldError: Unknown field(s) (y, b, d, o) > specified for Post > > This is because the Django expects a 'list' in the fields attribute. The > error can be solved by adding a trailing comma > > fields = ('body',) > > This problem is quite common, as people tend to forget the trailing > comma. I have written a small hack for this problem, that throws the > following error message if the trailing comma is missing > > django.core.exceptions.**FieldError: Missing trailing comma in fields > attribute > > This error message is more intuitive than the one that is thrown currently > > Editions: > > In django/forms/models.py > > class ModelFormOptions(object): > def __init__(self, options=None): > self.model = getattr(options, 'model', None) > self.fields = getattr(options, 'fields', None) > self.exclude = getattr(options, 'exclude', None) > self.widgets = getattr(options, 'widgets', None) > > if isinstance(self.fields,str): > message = 'Missing trailing comma in fields attribute' > raise FieldError(message) > > if isinstance(self.exclude,str): > message = 'Missing trailing comma in exclude attribute' > raise FieldError(message) > > I am raising a FieldError but a TypeError could also be raised. > > Regards > Sachin Gupta > > > > > > > -- > You received this message because you are subscribed to the Google Groups > "Django developers" group. > To view this discussion on the web visit > https://groups.google.com/d/msg/django-developers/-/biHIzxoCrD0J. > To post to this group, send email to django-developers@googlegroups.com. > To unsubscribe from this group, send email to > django-developers+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/django-developers?hl=en. > -- You received this message because you are subscribed to the Google Groups "Django developers" group. To post to this group, send email to django-developers@googlegroups.com. To unsubscribe from this group, send email to django-developers+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-developers?hl=en.