#30376: Saving ModelForm with missing, non-optional fields does not trigger a validation error -----------------------------------------+------------------------ Reporter: Will Gordon | Owner: nobody Type: Bug | Status: new Component: Uncategorized | Version: 2.1 Severity: Normal | Keywords: Triage Stage: Unreviewed | Has patch: 0 Needs documentation: 0 | Needs tests: 0 Patch needs improvement: 0 | Easy pickings: 0 UI/UX: 0 | -----------------------------------------+------------------------ I have my model
{{{#!python class Meeting(models.Model): title = models.CharField(max_length=255, help_text='A short header for your meeting') summary = models.TextField(help_text='An overview of the meeting. You\'ll have the opportunity to add specific notes later on') outcome = models.TextField(help_text='What was the final conclusion to the meeting') attended = models.DateField(help_text='When did you attend this meeting') attendees = models.ManyToManyField(Person, related_name='meetings') companies = models.ManyToManyField(Company, related_name='meetings') industries = models.ManyToManyField(Industry, related_name='meetings') author = models.ForeignKey(Person, on_delete=models.SET_NULL, related_name='my_meetings', null=True) }}} and my form {{{#!python class MeetingForm(forms.ModelForm): class Meta: model = models.Meeting fields = ['author', 'attended', 'attendees', 'companies', 'industries', 'outcome'] }}} Because `title`, and `summary` are not listed in my form's `fields`, I would expect this form to never be savable. This was a result of my merging of two models, I updated the Model, but not the Form. I was surprised when I was then able to save the Form. Based on documentation from https://docs.djangoproject.com/en/2.1/topics/forms/modelforms/#selecting- the-fields-to-use Django will prevent any attempt to save an incomplete model, so if the model does not allow the missing fields to be empty, and does not provide a default value for the missing fields, any attempt to save() a ModelForm with missing fields will fail. I would expect the validation to fail since there is no default value provided. This is either a docs bug, with the form validation working as expected (not validating any fields explicitly excluded)...or a form validation bug, where the form should still validate all Model fields to ensure it's not saving blank fields. -- Ticket URL: <https://code.djangoproject.com/ticket/30376> Django <https://code.djangoproject.com/> The Web framework for perfectionists with deadlines. -- You received this message because you are subscribed to the Google Groups "Django updates" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-updates+unsubscr...@googlegroups.com. To post to this group, send email to django-updates@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/django-updates/052.768e2013f4140902dcac8cc6f2f02980%40djangoproject.com. For more options, visit https://groups.google.com/d/optout.