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

Python 如何在django中显示内容变量中的静态图像?,python,django,django-templates,Python,Django,Django Templates,我有一个django网站,其中一部分基本上是CMS。数据库中有大量的内容块(比如文章的内容),我需要在其中显示静态文件中的图像。内容块中的内容可以是任何类似于常规博客文章的内容,因此其中可能散布着图像 我使用以下命令在模板中显示内容 {{content | safe}} 我可以显示图像,如果我把完整的url,但这不是最佳的,因为它没有使用Django静态文件系统的优势。既然我不能对内容中的图像使用{%static%}标记,我该如何显示这些内容呢?这似乎是一个使用标签的地方。可能有很多不同的方法

我有一个django网站,其中一部分基本上是CMS。数据库中有大量的内容块(比如文章的内容),我需要在其中显示静态文件中的图像。内容块中的内容可以是任何类似于常规博客文章的内容,因此其中可能散布着图像

我使用以下命令在模板中显示内容

{{content | safe}}

我可以显示图像,如果我把完整的url,但这不是最佳的,因为它没有使用Django静态文件系统的优势。既然我不能对内容中的图像使用
{%static%}
标记,我该如何显示这些内容呢?

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

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')
这是假设您的内容中已经有了类似这样的代码——您可以调整过滤器,以满足实际在内容中写入图像的要求。因为这依赖于设置中的静态URL,所以每当URL发生更改时,它都会进行调整,就像{%STATIC%}一样

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