我的所有用戶都可以選擇鏈接配置文件圖片。有幾個模板需要加載此配置文件圖片。如果用戶沒有上傳圖片,我們使用默認值。當我想顯示此資料圖片,我的代碼看起來像這樣解析服務器上的靜態URL
<img src="{% if user.profile_picture.search_thumbnail.url %}{{ user.profile_picture.search_thumbnail.url }}{% else %}{% static "alternate.jpg" %}{% endif %}">
這是辦法,我太冗長,特別是考慮到我需要重複它在多個模板。我可以使用{%with%}塊來存儲user.profile_picture.search_thumbnail.url,但這對我來說無能爲力。
我的解決方案是編寫一個附加到用戶模型的函數,該函數返回靜態文件的url。不幸的是,{%static%}是一個模板函數。 {%url%}在服務器上有一個名爲django.core.urlresolvers.reverse()的等效函數。 {%static%}標記是否存在替代方法?
如果有人問,我想使用靜態函數,因爲我的靜態文件根據環境存儲在不同的地方。我的開發機器在本地提供文件,而我的PRD機器從s3提供靜態文件。
謝謝 尼克
''settings.STATIC_URL''? –
這是一個非常合理的建議 – Nick