Take a simple Model and ModelForm like this: class Author(models.Model): name = models.CharField(max_length=80, blank=True, default="Joe", help_text="A name")
class AuthorForm(forms.ModelForm): class Meta: model = Author The resulting form will reflect the desired help text, default, and blank options. But if you decide to customize the widget, for example: class AuthorForm(forms.ModelForm): name = forms.CharField(widget=forms.TextInput(attrs={'size':80})) class Meta: model = Author the form field no longer reflects these model field options (that is, there is no help text, no default value, and you can't save it blank). This seems like undesirable behavior. At the very least it's surprising, and should probably be documented here: http://docs.djangoproject.com/en/dev/topics/forms/modelforms/#overriding-the-default-field-types. I'm fairly new to Django, so unfortunately I'm not sure of the right way to do this. One workaround is to set the fields manually, like: name = forms.CharField(widget=forms.TextInput(attrs={'size':80}), required=False, initial="Joe", help_text="A name") but that's an obvious violation of DRY. Another workaround, which takes advantage of the fact that the options are getting properly set in the call to the model field's formfield() method, is this: name = Author._meta.get_field("name").formfield (form_class=forms.CharField, widget=forms.TextInput(attrs={'size': 80})) but that's not ideal either, for obvious reasons. Any thoughts? --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---