2011-04-03 55 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應用程序以這種方式輸出網址。我認爲這是錯誤的,但圖像正在工作。看到這樣的網站很奇怪。

相關問題