我有一个django网站,其中一部分基本上是CMS。数据库中存在大型内容块(如帖子的内容),而我需要显示静态文件中的图像。内容块中的内容可以像常规博客文章一样,因此可能会分散图像。
我使用以下
在模板中显示内容{{content | safe}}
如果我输入完整的URL,我可以显示图像,但这不是最佳的,因为它没有使用Django静态文件系统的优点。如何显示这些内容,因为我无法将{% static %}
标记用于内容中的图片?
答案 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}}
即可激活过滤器。