﻿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
24756	Unexpected behavior of ModelForm.save for fields with blank=False and overridden required attribute	bboogaard	nobody	"Since upgrading to Django 1.8.1, I'm getting unexpected behavior when setting the required attribute for ModelForm fields to False for fields with blank=False in their field declaration on the model. Contrary to previous Django versions, the field is now ignored when calling the save() method of the ModelForm.

The model:

{{{
from django.db import models


class CodeName(models.Model):

    code = models.CharField('Code', max_length=20)

    name = models.CharField('Name', max_length=100)
}}}

The form:

{{{
from django import forms

from .models import CodeName


class CodeNameForm(forms.ModelForm):

    class Meta:
        model = CodeName
        fields = ['code', 'name']

    def __init__(self, *args, **kwargs):
        super(CodeNameForm, self).__init__(*args, **kwargs)
        self.fields['code'].required = False
}}}

Failing test:

{{{
from django.test import TestCase

from .forms import CodeNameForm
from .models import CodeName


class TestCodeNameForm(TestCase):

    def test_save(self):
        instance = CodeName(code='foo', name='Foobar')
        data = {
            'code': '',
            'name': 'Foobar'
        }
        form = CodeNameForm(data, instance=instance)
        form.full_clean()
        instance = form.save()
        self.assertEqual(instance.code, '')
}}}"	Bug	closed	Forms	1.8	Release blocker	invalid	forms models save blank required		Unreviewed	0	0	0	0	0	0
