В моем шаблоне 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 не позволяет назначать переменные.
Спасибо!
Большое спасибо, Kip. Это сделало трюк :) – Harlin
Учитывая, насколько уродливым является этот фрагмент кода, какой прекрасный способ превратить это в очень быструю функцию класса? И будет ли он короче в шаблоне? – mikebabcock
Я не знаю, я считаю, что это может быть уродливее. Но да, конечно, вы могли бы - возможно, написать метод на объекте obj: def random_link (self): return random.choice ((self.green_link, self.blue_link)) – Kip