我有这些变数:
#Int
user.id
#Float (e.g. X.YYYY)
profile.rating
我需要这样格式化(`
是分隔符):
<a href="/user/`user.id`/">`profile.rating`</a>
我尝试了很多方法来格式化它们,但都没有效果。例如,连接它们:"<a href=\"/user/"|add:user.id|add:"\">"|add:profile.rating|add:"</a>"
没有给我任何东西(字面意思,没有)。
我怀疑这是因为add:
是数字优先,但是使用slugify
或stringformat:""
将数字转换为字符串再次给了我 nothing
我该怎么做?
请注意:我需要使用过滤器执行此操作,因为结果将作为参数传递给include。
更新 基本上,我建立了一种模块化的包括。它包括如下所示:
<section>
...
{% if custom_section %}
<section id="{{ custom_section_id }}">
{{ custom_section }}
</section>
{% endif %}
...
</section>
这意味着我不能直接在参数中包含值,我需要在嵌套section
内部的标记。
答案 0 :(得分:1)
我设法通过这个标记来解决这个问题:
{% with "<a href="\"/user/" as link_start %}
{% with profile.rating|stringformat:".1f" as rating %}
{% with user.id|slugify as id %}
{% with link_start|add:id|add:"/\">" as link %}
{% with link|add:rating|add:"/5</a>" as data %}
{% include "XX" with custom_data:data|safe %}
{% endwith %} a couple of times
此处的关键是|stringformat:".1f"
和user.id|slugify
,因为没有它们,djangos worthless模板语言默认信念所有值都是数字,因此废话就出来了。
值得注意的是|safe
,因为没有它,语言会逃避值。
答案 1 :(得分:0)
请注意:我需要使用过滤器执行此操作,因为结果将是 作为参数传递给include。
您可以直接传递它们以包含,因为它将正确地使用上下文。
{% include user.id %}