﻿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
27039	ModelFields with 'default' value set and 'required'=False in form does not use default value	Ivan Belokobylskiy	nobody	"I have Model M with corresponding ModelForm

{{{
class M(models.Model):
    f = models.CharField(max_length=255, default=u'default_value')

class MF(forms.ModelForm):
    class Meta:
        model = M
        fields = ['f']

    f = forms.CharField(required=False)
}}}

I save form with empty data, expecting receive default value in field


{{{
mf = MF({})

if mf.is_valid():
    m = mf.save(commit=False)

m.f 
>>> u''
}}}

expected behavior 

{{{
m.f 
>>> u'default_value'
}}}

Commits, that broke previous behavior:
https://github.com/django/django/commit/375e1cfe2b2e1c3c57f882147c34902c6e8189ac

Offered patch:

{{{
--- django/forms/models.py	(revision 35225e2ade08ea32e36a994cd4ff90842c599e20)
+++ django/forms/models.py	(revision )
@@ -385,7 +385,7 @@
                 exclude.append(name)
 
         try:
-            self.instance = construct_instance(self, self.instance, opts.fields, opts.exclude)
+            self.instance = construct_instance(self, self.instance, opts.fields, exclude)
         except ValidationError as e:
             self._update_errors(e)
}}}

"	Bug	closed	Forms	1.10	Release blocker	fixed	default non-required modelform		Accepted	0	0	0	0	0	0
