﻿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
8133	BaseModelForm have to populate data not just object_data	keizie	nobody	"r8222, django/forms/models.py reads

{{{
class BaseModelForm(BaseForm):
    def __init__(self, data=None, files=None, auto_id='id_%s', prefix=None,
                 initial=None, error_class=ErrorList, label_suffix=':',
                 empty_permitted=False, instance=None):
        opts = self._meta
        if instance is None:
            # if we didn't get an instance, instantiate a new one
            self.instance = opts.model()
            object_data = {}
        else:
            self.instance = instance
            object_data = model_to_dict(instance, opts.fields, opts.exclude)
        # if initial was provided, it should override the values from instance
        if initial is not None:
            object_data.update(initial)
        super(BaseModelForm, self).__init__(data, files, auto_id, prefix, object_data,
                                            error_class, label_suffix, empty_permitted)
}}}

With this code, populating a ModelForm have different template output for each set of arguments;
1. form = BasicForm(instance=request.account)
puts None for {% for field in form %} {{ field.data }}
2. form = BasicForm(request.POST, instance=request.account)
puts appropriate data for the same syntax.

I tried following lines of code just after object_data is done, and template puts data both case.

{{{
        if data is None:
            data = {}
            data.update(object_data)
}}}"	Uncategorized	closed	Forms	dev	Normal	needsinfo			Design decision needed	0	0	0	0	0	0
