[英]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.