From 38dc472796eb4560d6408f4f2fd94298738794d1 Mon Sep 17 00:00:00 2001 From: Brian Rosner Date: Sun, 10 Aug 2008 01:07:40 +0000 Subject: [PATCH] Fixed #7250 -- Don't show internal data of a FileField in the admin when the form does not validate. This also alternatively fixes a recent problem since [8244] when the form is not valid. Thanks Marc Garcia for the initial ticket. git-svn-id: http://code.djangoproject.com/svn/django/trunk@8277 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/contrib/admin/widgets.py | 2 +- tests/regressiontests/admin_widgets/models.py | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/django/contrib/admin/widgets.py b/django/contrib/admin/widgets.py index 13c7c9cf01..2bfbc9715d 100644 --- a/django/contrib/admin/widgets.py +++ b/django/contrib/admin/widgets.py @@ -84,7 +84,7 @@ class AdminFileWidget(forms.FileInput): def render(self, name, value, attrs=None): output = [] - if value: + if value and hasattr(value, "url"): output.append('%s %s
%s ' % \ (_('Currently:'), value.url, value, _('Change:'))) output.append(super(AdminFileWidget, self).render(name, value, attrs)) diff --git a/tests/regressiontests/admin_widgets/models.py b/tests/regressiontests/admin_widgets/models.py index af72422849..e178a750e3 100644 --- a/tests/regressiontests/admin_widgets/models.py +++ b/tests/regressiontests/admin_widgets/models.py @@ -27,6 +27,7 @@ class Album(models.Model): __test__ = {'WIDGETS_TESTS': """ >>> from datetime import datetime >>> from django.utils.html import escape, conditional_escape +>>> from django.core.files.uploadedfile import SimpleUploadedFile >>> from django.contrib.admin.widgets import FilteredSelectMultiple, AdminSplitDateTime >>> from django.contrib.admin.widgets import AdminFileWidget, ForeignKeyRawIdWidget, ManyToManyRawIdWidget >>> from django.contrib.admin.widgets import RelatedFieldWidgetWrapper @@ -54,6 +55,8 @@ HTML escaped. >>> w = AdminFileWidget() >>> print conditional_escape(w.render('test', album.cover_art)) Currently: albums\hybrid_theory.jpg
Change: +>>> print conditional_escape(w.render('test', SimpleUploadedFile('test', 'content'))) + >>> rel = Album._meta.get_field('band').rel >>> w = ForeignKeyRawIdWidget(rel)