使用Django模板标签“with”和另一个模板标签的结果

时间:2013-04-02 22:08:17

标签: python django django-templates

我有一个comment_form.html模板,它在我的应用中的多个位置使用,我希望能够将端点的url从父模板传递到该模板中。通常我会使用with标记执行此操作:

{% with endpoint='/comments' %}
    {% include 'comment_form.html' %}
{% endwith %}

问题是我不能在这里使用字符串文字'/comments',而是需要一个url标记,如下所示:{% url 'blog:comments:comments' username=post.user.username object_id=post.id %}with模板标记似乎需要文字或上下文变量,似乎无法理解“使用另一个模板标记的结果”。

一种解决方案是分别传递字符串'blog:comments:comments',post.user.username,post.id。但这是一个问题,因为注释表单的不同用法可能需要不同的参数来唯一地定义端点。

如何将with与另一个模板标记的结果一起使用?

1 个答案:

答案 0 :(得分:3)

你不能,但你不需要。 url标记有一个替代语法,将结果注入上下文:

{% url 'blog:comments:comments' username=post.user.username object_id=post.id as endpoint %}