From 95f5e4a8daceb351b8e12b52489d37f1408b140b Mon Sep 17 00:00:00 2001 From: Jacob Kaplan-Moss Date: Fri, 10 Apr 2009 17:07:25 +0000 Subject: [PATCH] Fixed #10774: accessing form media types in templates (i.e. ``{{ form.media.js }}``) now works. Thanks, tarequeh and Alex Gaynor. git-svn-id: http://code.djangoproject.com/svn/django/trunk@10489 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/forms/widgets.py | 2 +- tests/regressiontests/forms/media.py | 14 +++++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/django/forms/widgets.py b/django/forms/widgets.py index e25f619c3c..6768984eca 100644 --- a/django/forms/widgets.py +++ b/django/forms/widgets.py @@ -75,7 +75,7 @@ class Media(StrAndUnicode): def __getitem__(self, name): "Returns a Media object that only contains media of the given type" if name in MEDIA_TYPES: - return Media(**{name: getattr(self, '_' + name)}) + return Media(**{str(name): getattr(self, '_' + name)}) raise KeyError('Unknown media type "%s"' % name) def add_js(self, data): diff --git a/tests/regressiontests/forms/media.py b/tests/regressiontests/forms/media.py index d05db1f164..fc1b412bcf 100644 --- a/tests/regressiontests/forms/media.py +++ b/tests/regressiontests/forms/media.py @@ -355,5 +355,17 @@ media_tests = r""" +# Media works in templates +>>> from django.template import Template, Context +>>> Template("{{ form.media.js }}{{ form.media.css }}").render(Context({'form': f3})) +u' + + + + + + +' + >>> settings.MEDIA_URL = ORIGINAL_MEDIA_URL -""" \ No newline at end of file +"""