From 8cbcc7152b307b39bfd45a6b3e695bc5ab87b300 Mon Sep 17 00:00:00 2001 From: Brian Rosner Date: Thu, 27 Mar 2008 02:55:45 +0000 Subject: [PATCH] newforms-admin: Fixed #6889 -- ModelForm nows supports media defined in the form. git-svn-id: http://code.djangoproject.com/svn/django/branches/newforms-admin@7365 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/newforms/models.py | 3 +++ tests/modeltests/model_forms/models.py | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/django/newforms/models.py b/django/newforms/models.py index ba756df408..f12b53dacb 100644 --- a/django/newforms/models.py +++ b/django/newforms/models.py @@ -14,6 +14,7 @@ from util import ValidationError, ErrorList from forms import BaseForm, get_declared_fields from fields import Field, ChoiceField, IntegerField, EMPTY_VALUES from widgets import Select, SelectMultiple, HiddenInput, MultipleHiddenInput +from widgets import media_property from formsets import BaseFormSet, _formset_factory, DELETION_FIELD_NAME __all__ = ( @@ -226,6 +227,8 @@ class ModelFormMetaclass(type): attrs) new_class = type.__new__(cls, name, bases, attrs) + if 'media' not in attrs: + 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)) if opts.model: diff --git a/tests/modeltests/model_forms/models.py b/tests/modeltests/model_forms/models.py index 470312f5ca..1cd1041d9f 100644 --- a/tests/modeltests/model_forms/models.py +++ b/tests/modeltests/model_forms/models.py @@ -912,4 +912,22 @@ True u'...test3.png' >>> instance.delete() +# Media on a ModelForm ######################################################## + +# Similar to a regular Form class you can define custom media to be used on +# the ModelForm. + +>>> class ModelFormWithMedia(ModelForm): +... class Media: +... js = ('/some/form/javascript',) +... css = { +... 'all': ('/some/form/css',) +... } +... class Meta: +... model = PhoneNumber +>>> f = ModelFormWithMedia() +>>> print f.media + + + """}