簡體   English   中英

不能在Django Flatpage中使用{{MEDIA_URL}}?

[英]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 &amp; 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.pytemplatetags目錄在你的一個INSTALLED_APPS ,過濾器添加到您的flatpages模板,像這樣

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM