fil*_*d13 2 html python django django-templates django-flatpages
一个相当简单的问题,如果需要,我会详细说明以解决问题。
我试图使用一个简单的调用来{{ MEDIA_URL }}在 About Us Django flatpage 上显示图像,但似乎 flatpage 忽略了它是 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 扩展了我常用的模板,所以我看不出为什么会失败,除非我不明白平面页面可以访问什么?
您可以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
Run Code Online (Sandbox Code Playgroud)
以及用法:
{% load media_url %}
{{ flatpage.content|media_url }}
Run Code Online (Sandbox Code Playgroud)
要进行设置,请将上面的代码放入一个media_url.py在您的templatetags目录中调用的文件中INSTALLED_APPS,然后将过滤器添加到您的 flatpages 模板中,如下所示
| 归档时间: |
|
| 查看次数: |
432 次 |
| 最近记录: |