在Django模板中显示随机对象

时间:2014-02-06 17:18:25

标签: django random django-templates

在我的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模板语言不允许变量赋值。

谢谢!

1 个答案:

答案 0 :(得分:1)

您不能将列表直接放入模板中,make_list就是您所追求的。

make_list返回一个字符串列表,这样就行了。

{% if 12|make_list|random == '1' %}
   <li><a href="{{ obj.green_link }}">Blah</a></li>
{% else %}
   <li><a href="{{ obj.blue_link }}">Blah</a></li>
{% endif %}