2024-04-20 15:21:50 发布
网友
我想在Django找到一个类似的例子
if idx % 3 == 2:做点什么
if idx % 3 == 2:
idx是forloop中的一个索引,但是我已经简化了代码
我用了这个:
{% ifequal idx|divisibleby:3 2 %} do something {% endifequal %}
似乎divisibleby过滤器返回True,所以在得到它的模之后几乎不可能比较数字2。在
divisibleby
True
你说得对,divisbleby只返回True或False,所以除了像@sayse建议的那样构建自己的模板标记之外,还可以提供一组数字x,其中x % 3 ==2,然后在模板中进行如下比较:
divisbleby
False
x
x % 3 ==2
在您看来context['correct_numbers'] = { x for x in range(100) if x%3 ==2}
context['correct_numbers'] = { x for x in range(100) if x%3 ==2}
然后在模板中:
{% if idx in correct_numbers %} do something {% endif %}
DivisibleBy只做一个模运算来检查最终值是否等于0,没有任何东西可以阻止您使用完全相同的代码制作自己的模板标记,而不进行最终检查
@register.filter(is_safe=False) def modulo(value, arg): return int(value) % int(arg) {% ifequal idx|modulo:3 2 %}
idx % 3 == 2如果(idx - 2) % 3 == 0
idx % 3 == 2
(idx - 2) % 3 == 0
因此
{% if idx | add:-2 | divisibleby:3 %} do something {% endif %}
我想应该做你想做的事。在
你说得对,
divisbleby
只返回True
或False
,所以除了像@sayse建议的那样构建自己的模板标记之外,还可以提供一组数字x
,其中x % 3 ==2
,然后在模板中进行如下比较:在您看来
context['correct_numbers'] = { x for x in range(100) if x%3 ==2}
然后在模板中:
DivisibleBy只做一个模运算来检查最终值是否等于0,没有任何东西可以阻止您使用完全相同的代码制作自己的模板标记,而不进行最终检查
idx % 3 == 2
如果(idx - 2) % 3 == 0
因此
我想应该做你想做的事。在
相关问题 更多 >
编程相关推荐