Fixed #7289 -- Made ModelForms behave like Forms in the sense that Field

objects don't appear as attributes on the final form instance. They continue to
appear as elements of the form_instance.fields mapping.

If you were relying on ModelForms having fields as attributes, then this will
be slightly backwards incompatible. However, normal template usage will see no
change at all.

Patch from Daniel Pope.


git-svn-id: http://code.djangoproject.com/svn/django/trunk@8618 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Malcolm Tredinnick 2008-08-27 08:05:59 +00:00
parent ec8848dad5
commit 7e9a22aae7
1 changed files with 1 additions and 1 deletions

View File

@ -163,6 +163,7 @@ class ModelFormMetaclass(type):
except NameError: except NameError:
# We are defining ModelForm itself. # We are defining ModelForm itself.
parents = None parents = None
declared_fields = get_declared_fields(bases, attrs, False)
new_class = super(ModelFormMetaclass, cls).__new__(cls, name, bases, new_class = super(ModelFormMetaclass, cls).__new__(cls, name, bases,
attrs) attrs)
if not parents: if not parents:
@ -170,7 +171,6 @@ class ModelFormMetaclass(type):
if 'media' not in attrs: if 'media' not in attrs:
new_class.media = media_property(new_class) new_class.media = media_property(new_class)
declared_fields = get_declared_fields(bases, attrs, False)
opts = new_class._meta = ModelFormOptions(getattr(new_class, 'Meta', None)) opts = new_class._meta = ModelFormOptions(getattr(new_class, 'Meta', None))
if opts.model: if opts.model:
# If a model is defined, extract form fields from it. # If a model is defined, extract form fields from it.