如何在django中显示内容变量中的静态图像?

时间:2014-07-16 01:56:59

标签: python django django-templates

我有一个django网站,其中一部分基本上是CMS。数据库中存在大型内容块(如帖子的内容),而我需要显示静态文件中的图像。内容块中的内容可以像常规博客文章一样,因此可能会分散图像。

我使用以下

在模板中显示内容
{{content | safe}}

如果我输入完整的URL,我可以显示图像,但这不是最佳的,因为它没有使用Django静态文件系统的优点。如何显示这些内容,因为我无法将{% static %}标记用于内容中的图片?

1 个答案:

答案 0 :(得分:0)

这似乎是一个使用custom filter的地方。可能有很多不同的方法可以做到这一点,但其中一个可能是这样的:

from django import template
from my_project import settings

register = template.Library()

@register.filter
def img_link(content):
    return content.replace('src=','src='+settings.STATIC_URL')

假设您已经在内容中看到了类似的代码 - 您可以调整过滤器以满足您的图像实际写入内容。因为这依赖于您设置中的STATIC_URL,所以只要更改了网址,它就会进行调整,与{%static%}完全相同。

当然,过滤器可以是chained,因此您只需编写{{content|safe|img_link}}即可激活过滤器。