【发布时间】:2017-05-14 01:03:38
【问题描述】:
我试图直接在我的模板上的对象列表中获取单个随机对象。
这是我正在尝试做的一个例子:
views.py 是这样的:Font.objects.all()
模板文件:
{% for f in Fo.checkbox.all %} #f|random_choice doesn't work here.
<p>{{ f.font_name|random_choice }}</p> #gives me a single random character of each object.
{% endfor %}
上面的示例为我提供了列表中每个对象的单个随机字符,但我试图在对象列表中获取一个随机对象。
这里是 templatetag 文件:
@register.filter(name='random_choice')
def random_choice(l):
return random.choice(list(l))
我该怎么做?
【问题讨论】:
-
显示更多views.py。你传递给模板的上下文是什么? Fo.checkbox 是从哪里来的?如果您的视图中有类似 fonts=Font.objects.all() 的内容,并将其作为 {'fonts': fonts,} 传递,那么在您的模板中 {{ fonts|random }} 应该可以工作。你似乎已经在循环一些东西了。预感是你可能想要 {{ Fo.checkbox.all|random }}
标签: python django django-templates django-template-filters