if语句中调用的模板标记

时间:2011-05-26 20:39:13

标签: django django-templates

我想知道是否有任何方法可以在if声明中调用模板标记。

我正在尝试执行以下操作。

{% for k,v in form.amenities.field.choices %}
    {% if {% check_hidden k %} %}
        {{ v }}
    {% endif %}
{% endfor %}

{% check_hidden k %}标记会从正在查找的项目的表格中返回TrueFalse。 我可以确认{% check_hidden k %}会自行返回TrueFalse,但我想知道我是否可以在其周围包含if语句?

我正在使用的应用程序是继承的,所以我正在努力减少现在需要完成的更改量。目前它只是呈现为{{form.amenities}},但我在模型中添加了一个额外的字段,我现在需要在模板中显示字段之前检查它。

如果还有其他办法可以做到,我愿意接受建议。

提前致谢。

2 个答案:

答案 0 :(得分:7)

当需要的是filter时,听起来check_hidden被写为模板标记。

{% if k|check_hidden_filter %}

答案 1 :(得分:0)

无论check_hidden对选择值的作用是什么,都需要从根本上解决。

如果字段选择是动态的,则需要在视图函数中建立正确的选择集,从而无需在模板中执行check_hidden。

https://stackoverflow.com/search?q=%5Bdjango%5D+dynamic+choices

将为您提供多种动态选择方式。其中许多都是在view函数中完成的,不需要在模板中使用这种if语句。