私は自分のテンプレート上のオブジェクトのリストの中でただ一つのランダムなオブジェクトを取得しようとしています。ここでカスタムフィルタを使用してオブジェクトリストのランダムな値を取得するにはどうすればよいですか?
は私がしようとしているものの例である:
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 %}
の例では、上記示します私はリスト内の各オブジェクトの単一のランダムな文字ですが、私はオブジェクトのリストにランダムなオブジェクトを取得しようとしています。
@register.filter(name='random_choice')
def random_choice(l):
return random.choice(list(l))
私はそれをどのように操作を行うことができます。ここ
はtemplatetagファイルのですか?
もう少し詳しく見ることができます。あなたは文脈のためにテンプレートに何を渡していますか? Fo.checkboxはどこから来たのですか?あなたのビューにfonts = Font.objects.all()のようなものがあって、それを{'fonts':fonts、}として渡すなら、あなたのテンプレート{{fonts | random}}はうまくいくはずです。あなたはすでに何かを繰り返しているようです。 {{Fo.checkbox.all | random}} – AMG