On 12/23/07, Julien <[EMAIL PROTECTED]> wrote: > > Hi there, > > I don't understand why the form doesn't validate when I don't fill out > a ManyToManyField. > > Here's the code: > > class Participant(models.Model): > project = models.ForeignKey(Project, related_name='participants') > roles = models.ManyToManyField(Role, blank=True, null=True) > user = models.ForeignKey(User) > > class EditParticipantForm(forms.ModelForm): > roles = > forms.MultipleChoiceField(widget=TableSelectMultiple(item_attrs=('name',))) > def __init__(self, *args, **kwargs): > super(EditParticipantForm, self).__init__(*args, **kwargs) > self.fields['roles'].choices = [(role.pk, role) for role in > Role.objects.all()] > class Meta: > model = Participant > fields = ('roles',) > > > (The custom widget TableSelectMultiple is taken from there: > http://www.djangosnippets.org/snippets/518/) > > If I don't select any option for 'roles' I get the error 'This field > is required'. > Yet, the doc says that the form field shouldn't be required if the > corresponding model field has 'blank=True': > http://www.djangoproject.com/documentation/modelforms/#field-types > > Is that a bug or is there a sensible explanation? :)
You are overriding the default field for 'roles' that the ModelForm would generate, so you'll need to mark your custom one as required=False. ModelForm will not magically change any custom fields you define. Joseph --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/django-users?hl=en -~----------~----~----~----~------~----~------~--~---