不能在Django Flatpages中使用{MEDIA\'URL}}?

2024-06-02 12:27:29 发布

您现在位置:Python中文网/ 问答频道 /正文

这是一个相当简单的问题,如果需要的话,我会详细说明,以便解决这个问题。在

我试图使用一个简单的调用{{ MEDIA_URL }}来在About Us Django页面上显示一个图像,但是它似乎忽略了它是一个Django变量的事实,而只是将{{MEDIA_URL}}作为文本?在

我提供了:<img src="{{ MEDIA_URL }}images/static/Deb-and-Diana-About-Us.jpg" alt="Deb &amp; Diana Portrait" width="300" height="384" align="left">,但是当模板呈现时,它并没有在它应该的地方附加媒体URL,它只留下单词{{ MEDIA_URL }}。在

我是不是错过了什么进口货?这个默认.html它控制着flatpage扩展了我通常的模板,所以我看不出它为什么会失败,除非我不明白flatpages可以访问什么?在


Tags: django图像文本模板urlimgdeb页面
1条回答
网友
1楼 · 发布于 2024-06-02 12:27:29

您可以通过templatetag访问平面页中的MEDIA_URLLook at this snippet 它搜索{{ 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

以及用法:

^{pr2}$

要进行设置,请将上述代码放入您的templatetags目录中的templatetags中的一个名为media_url.py的文件中,然后将过滤器添加到flatpages模板中,如下所示

相关问题 更多 >