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
+
+
+
"""}