作为Django中关键字云功能的一部分,我试图输出一个字符串列表。是否有模板过滤器,允许您在列表中随机播放项目?我认为这很简单,但我在官方文档中找不到任何适用的过滤器。
答案 0 :(得分:13)
直接制作你的。
# app/templatetags/shuffle.py
import random
from django import template
register = template.Library()
@register.filter
def shuffle(arg):
tmp = list(arg)[:]
random.shuffle(tmp)
return tmp
然后在你的模板中:
{% load shuffle %}
<ul>
{% for item in list|shuffle %}
<li>{{ item }}</li>
{% endfor %}
</ul>
答案 1 :(得分:2)
只是添加,如果它是一个查询集,它将抛出一个错误,因为无法分配对象列表。这是一个修复fr christophe31代码:
import random
from django import template
register = template.Library()
@register.filter
def shuffle(arg):
return random.shuffle([i for i in arg[:]])
答案 2 :(得分:0)
'QuerySet'对象不支持项目分配