0
在我的Django的模板,因为我通过对象的列表进行迭代,我想有一个列表项说:显示在Django模板随机对象
<li><a href="{{ obj.green_link }}">Blah</a></li>
,然后又做:
<li><a href="{{ obj.blue_link }}">Blah</a></li>
我看到了价值|随机作为一个选项,但由于某种原因,这不起作用:
{% ifequal [1, 2]|random 1 %}
<a href="{{ post.adfly_url }}">{{ post.title }}</a>
{% else %}
<a href="{{ post.url }}">{{ post.title }}</a>
{% endifequal %}
这样做会引发ŧ他的错误:
u'ifequal' takes two arguments
有没有什么办法可以做到这一点?我认为它应该很简单,但我意识到Django模板语言不允许进行变量赋值。
谢谢!
非常感谢,基普。这就是诀窍:) – Harlin
鉴于这段代码有多丑陋,将其转化为快速类功能的最好方法是什么?它会在模板中缩短吗? – mikebabcock
我不知道,我估计它可能更丑。但是,是的,你可以 - 可以在你的obj对象上写一个方法: def random_link(self): return random.choice((self.green_link,self.blue_link)) – Kip