gpt4 book ai didi

python - 解压列表以在 django 中循环标记

转载 作者:太空狗 更新时间:2023-10-30 01:28:38 24 4
gpt4 key购买 nike

我知道,我可以做类似的事情

{% cycle "value1" "value2" %}

但是如果我的所有输入值都在一个列表中怎么办?我可以做类似的事情吗?

{% cycle my_input_list %}

最佳答案

内置的django循环标签不支持传入变量。不过,您可以制作自己的自定义标签。这样的事情应该有效:

import itertools
from django import template
register = template.Library()


class CycleNode(template.Node):
def __init__(self, cyclevars):
self.cyclevars = template.Variable(cyclevars)

def render(self, context):
names = self.cyclevars.resolve(context)
if self not in context.render_context:
context.render_context[self] = itertools.cycle(names)
cycle_iter = context.render_context[self]
return next(cycle_iter)


@register.tag
def cycle_list(parser, token):
try:
tag_name, arg = token.contents.split(None, 1)
except ValueError:
raise template.TemplateSyntaxError(
"%r tag requires an argument" % token.contents.split()[0]
)
node = CycleNode(arg)
return node

然后在模板中:

{% cycle_list some_list %}

关于python - 解压列表以在 django 中循环标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29526291/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com