Django:{%cycle%}有问题
这直接取自我的Django模板:Django:{%cycle%}有问题,django,django-templates,cycle,rounded-corners,Django,Django Templates,Cycle,Rounded Corners,这直接取自我的Django模板: {% for day in days %} <!-- {% cycle 'day' 'day' 'day last' as cls %} --> {% rounded "black" cls %} {# Custom tag giving me rounded borders. #} ... {% endrounded %} {% endfor %} {%为天中的天%} {%rounded“black”cls%}{{#自定义标记给我
{% for day in days %}
<!-- {% cycle 'day' 'day' 'day last' as cls %} -->
{% rounded "black" cls %} {# Custom tag giving me rounded borders. #}
...
{% endrounded %}
{% endfor %}
{%为天中的天%}
{%rounded“black”cls%}{{#自定义标记给我圆角边框。#}
...
{%endrounded%}
{%endfor%}
我已经注释掉了
{%cycle%}
,因为我只使用它在循环中每隔三次迭代将“cls
”设置为“day last
”。有没有更好的方法在不向视图添加任何代码的情况下执行此操作?(人们说逻辑不应该出现在模板中,但反过来则更糟。)应用程序逻辑不应该出现在模板中。表示逻辑确实属于那里(看起来就是这样)。我会把它放在那里 应用程序逻辑不应该在模板中。表示逻辑确实属于那里(看起来就是这样)。我会把它放在那里 我不太明白您为什么会有问题,因为您当前的解决方案似乎有效。我认为您不需要HTML注释,因为{%cycle%}
与一起作为不会输出任何内容,但除此之外,它似乎还可以
但是,如果您需要另一种方法,可以使用divisibleby
过滤器:
{% for day in days %}
{% if forloop.counter|divisibleby:3 %}
{% rounded "black" "day last" %}
{% else %}
{% rounded "black" "day" %}
{% endif %}
{% endfor %}
但我不认为这比您已经拥有的更好。我不确定我是否理解您为什么会有问题,因为您当前的解决方案似乎有效。我认为您不需要HTML注释,因为{%cycle%}
与一起作为不会输出任何内容,但除此之外,它似乎还可以
但是,如果您需要另一种方法,可以使用divisibleby
过滤器:
{% for day in days %}
{% if forloop.counter|divisibleby:3 %}
{% rounded "black" "day last" %}
{% else %}
{% rounded "black" "day" %}
{% endif %}
{% endfor %}
但是我不认为这比你已经拥有的更好。嗯……这就是循环
标签的作用。我不知道你为什么要逃避,但你应该知道:
任何需要选择性应用某些规则的逻辑都需要python代码,因为模板代码不分配给变量
python代码必须从templatetag或view函数逻辑调用
因此,如果不使用视图逻辑,就只能使用templatetags。要么自己写,要么使用内置的<代码>循环
似乎和其他任何循环一样简单。有什么问题。嗯……这就是循环
标签的作用。我不知道你为什么要逃避,但你应该知道:
任何需要选择性应用某些规则的逻辑都需要python代码,因为模板代码不分配给变量
python代码必须从templatetag或view函数逻辑调用
因此,如果不使用视图逻辑,就只能使用templatetags。要么自己写,要么使用内置的<代码>循环
似乎和其他任何循环一样简单。有什么问题。'Django开发版本中的新增功能'
循环“as”标记现在具有“静默”模式:
'Django开发版本中的新版本'
循环“as”标记现在具有“静默”模式:
但问题(可能不清楚)是:如果不在HTML注释中使用{%cycle%}而不将其放入视图中,我如何做同样的事情?但问题(可能不清楚)是:如果不在HTML注释中使用{%cycle%}而不将其放入视图中,我如何做同样的事情?{%cycle%}
使用作为输出,这是我通常不会想到的,但是是的。。。我将采用您的解决方案。您应该更新您的答案,因为“使用as循环不会输出任何内容”的语句是不正确的。这就是定义循环时“静默”选项的要点<代码>{%cycle%}
使用作为它的输出,这是我通常不会想到的,但是是的。。。我将采用您的解决方案。您应该更新您的答案,因为“使用as循环不会输出任何内容”的语句是不正确的。这就是定义循环时“静默”选项的要点。问题是,{%cycle%}
被替换为它的结果,这就是为什么我不得不使用HTML注释来隐藏结果。换句话说,这是一个愚蠢的黑客行为,它将在生成的HTML源代码中大放异彩。正如Roseman指出的,还有另一种方法可以完成同样的事情。问题是,{%cycle%}
被替换为它的结果,这就是为什么我不得不使用HTML注释来隐藏结果。换句话说,这是一个愚蠢的黑客行为,它将在生成的HTML源代码中大放异彩。正如罗斯曼指出的,还有另一种方法可以完成同样的事情。