出於某種原因,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(出於我無法控制的原因......儘管我懷疑這也是問題)。
有關如何解決此問題的任何想法?
幾天前您在#django IRC上詢問過這個問題嗎?如果沒有,那麼嘗試#django IRC,看起來你不是唯一的一個。我並沒有徘徊在最後的討論結果,但至少確定存儲在數據庫中,並在模型或模板渲染中發生問題。 – 2011-04-03 04:08:48
是的,那是我在IRC。不幸的是,我仍然沒有解決這個問題。 – jcady 2011-04-03 04:22:43
該問題似乎與模板轉義無關,所以使用'| safe'或'{%autoescape off%} {%autoescape end%}''不會解決您在shell中看到的問題。 – Max 2011-04-03 17:33:17