[英]Can't use {{MEDIA_URL}} in Django Flatpages?
為了解決該問題,我將在需要時闡述一個相當簡單的問題。
我嘗試使用一個簡單的調用{{ MEDIA_URL }}
來在About About Django {{ MEDIA_URL }}
上顯示圖像,但是該平板似乎忽略了它是Django變量的事實,只是將{{MEDIA_URL}}
用作文本?
我提供了: <img src="{{ MEDIA_URL }}images/static/Deb-and-Diana-About-Us.jpg" alt="Deb & Diana Portrait" width="300" height="384" align="left">
但是在呈現模板時,它沒有在應有的位置附加MEDIA_URL,而僅留下單詞{{ MEDIA_URL }}
。
我缺少進口商品嗎? 控制平面的default.html擴展了我通常的模板,因此我看不出為什么它會失敗,除非我不明白哪些平面可以訪問?
您可以通過templatetag在平面頁面中訪問MEDIA_URL
。 查看此代碼段,它將搜索{{ MEDIA_URL }}
並將其替換為您的設置中找到的內容。
from django import template
from django.conf import settings
from django.template.defaultfilters import stringfilter
register = template.Library()
@register.filter
@stringfilter
def media_url(value):
"""Searches for {{ MEDIA_URL }} and replaces it with the MEDIA_URL from settings.py"""
return value.replace('{{ MEDIA_URL }}', settings.MEDIA_URL)
media_url.is_safe = True
以及用法:
{% load media_url %}
{{ flatpage.content|media_url }}
要設置,刪除上面的代碼到一個名為media_url.py
在templatetags
目錄在你的一個INSTALLED_APPS
,過濾器添加到您的flatpages模板,像這樣
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.