python - 为什么 Django HTML 标签不能在字符串中工作?
问题描述
假设我有这样的图像源:
<img src="{% static 'images/category1.png' %}">
这完全正常 - 它找到图像并正确显示它。但是,它在一个 for 循环中,所以我将为每个元素使用不同的图像(在这种情况下,每个类别都有不同的图像)
由于某种原因,这不起作用:
{% for cat in category %}
...
<img src="{% static 'images/{{cat.category_slug}}.png' %}">
...
{% endfor %}
我很肯定 {{cat.category_slug}} 变量具有正确的名称作为我的图像,如下所示:
<p>{{cat.category_slug}}</p>
在我的网站上显示“category1”,这是正确的。
解决方案
您可以使用|add
模板标签 [Django-doc]来执行字符串连接:
<img src="{% static 'images/'|add:cat.category_slug|add:'.png' %}">
但是在模型中简单地使用方法可能更优雅Category
。例如:
class Category(models.Model):
category_slug = models.SlugField(max_length=128)
# …
def get_image(self):
return f'images/{self.category_slug}.png'
那么您可以将其实现为:
<img src="{% static cat.get_image %}">
推荐阅读
- python - Keras模型的输出维度
- swift - 如何阻止视图在 SwiftUI 中出现动画?
- amazon-web-services - 允许从 Amazon EC2 实例跨账户访问 Amazon S3 存储桶
- python - 如何在 Linux 的 Windows 子系统中安装 Python 模块?
- html - 如何按类选择奇数/偶数元素,不是兄弟姐妹?
- java - Api 在 Keycloak 降级时抱怨 no-referrer-when-downgrade
- mysql - UNION 仅基于一列
- node.js - 使用axios发送api时如何使req.files和req.body在nodejs中可用
- sql - CodeFirst 迁移:如何在自动完成“更新数据库”后运行数据库脚本(C# 或 SQL)?
- javascript - 即使在脚本上使用 text/babel 时,意外的标记 '<'