2011-04-03 65 views
0

出于某种原因,Django似乎显示我的ImageField URL字符串转义。见下文(ImageWithThumbsFieldFile使用幕后的ImageField的,我有一个正常的ImageField测试它以及和问题依然存在。)为什么Django为照片网址显示转义字符串?

>>> from … import UserProfile 
>>> u = UserProfile.objects.get(pk=1) 
>>> u 
<UserProfile: johnny's profile> 
>>> u.profile_picture 
<ImageWithThumbsFieldFile: /static/img/profile_picture.png> 
>>> u.profile_picture.url 
'http://mysite.com/%2Fstatic%2Fimg%2Fprofile_picture.png' 

注意到网址中逸出。现在,当我查询MySQL数据库时:

mysql> select * from ..._userprofile; 
+----+---------+---------------------------------+------+ 
| id | user_id | profile_picture     | bio | 
+----+---------+---------------------------------+------+ 
| 1 |  1 | /static/img/profile_picture.png | NULL | 
| 2 |  2 | /static/img/profile_picture.png |  | 

url不是这样存储的。所以,我不相信问题是存储在数据库中的数据(url是默认值)。

我试图与

|safe 

{% autoescape off %} {% autoescape end %} 

逃避无济于事。我的设置是在Apache mod_wsgi下运行MySQL的Django 1.2.3。该应用程序在相同的设置下运行在我的登台服务器上,没有问题(也包括Apache和MySQL)。但是由于转义出现在Python shell中,我不认为数据库或服务器是根本原因。好的服务器运行的是Python 2.7,而糟糕的服务器运行的是Python 2.6.6(出于我无法控制的原因......尽管我怀疑这也是问题)。

有关如何解决此问题的任何想法?

+0

几天前您在#django IRC上询问过这个问题吗?如果没有,那么尝试#django IRC,看起来你不是唯一的一个。我并没有徘徊在最后的讨论结果,但至少确定存储在数据库中,并在模型或模板渲染中发生问题。 – 2011-04-03 04:08:48

+0

是的,那是我在IRC。不幸的是,我仍然没有解决这个问题。 – jcady 2011-04-03 04:22:43

+0

该问题似乎与模板转义无关,所以使用'| safe'或'{%autoescape off%} {%autoescape end%}''不会解决您在shell中看到的问题。 – Max 2011-04-03 17:33:17

回答

0

据我所知,这是由于Amazon S3没有文件夹。出于某种原因,django-storages应用程序以这种方式输出网址。我认为这是错误的,但图像正在工作。看到这样的网站很奇怪。

相关问题