Django模板系统中的IF语句

0 投票
3 回答
2135 浏览
提问于 2025-04-15 19:22

我该怎么做:

{% if thestring %}

    {% if thestring.find("1") >= 0 %}

    {% endif %}

{% endif %}

我在想是不是需要创建一个模板过滤器?这样可以吗?

3 个回答

1

我觉得你会发现,Django的模板系统并不是为了处理复杂的逻辑而设计的。这种处理应该在你的视图中进行,然后再传递给模板。

3

这样做是可以的。不过,建议使用 in 操作符,而不是 find() 方法。

举个例子:

{% if thestring|contains:"1" %}
3

其实你不需要自己去做一个特别的过滤器,虽然如果你做了也是可以的——另外一种方法就是写代码

{% if thestring %}

    {% if "1" in thestring %}

    {% endif %}

{% endif %}

这样也完全没问题。

撰写回答