5

ランダムなコンテンツをレンダリングするために部分ビューで使用している Django (1.5) テンプレート タグがあります。タグは、単一のレコードのクエリを作成します。単一のアイテムを返品することに問題はありませんが、使用するためにオブジェクト全体または複数のアイテムを返送しようとすると問題が発生します。

ここに私のタグがあります

@register.inclusion_tag('_footer.html')
def get_random_testimonial():
    # Grab random record
    record = Testimonials.objects.order_by('?')[0]
    return record.text

templateタグにrecord.textとrecord.idの両方を返せるようにしたい

タグをレンダリングするには、これを _footer.html ビューに持っています

{% load current_tags %}
{% get_random_testimonial %}

レコードオブジェクトを返すだけで、そのオブジェクトのすべての値を次のように取得できる方法はありますか?

 {% get_random_testimonial.text %}
 {% get_random_testimonial.id %}
4

1 に答える 1

12

これは包含タグとして意味がありません。特に、レンダリングするように指示したのと同じテンプレートで使用しているようです。

必要なのは割り当てタグです:

@register.assignment_tag
def get_random_testimonial():
    return Testimonials.objects.order_by('?')[0]

次に、次のことができます。

{% get_random_testimonial as my_testimonial %}
{{ my_testimonial.text }}
{{ my_testimonial.id }}
于 2013-03-28T13:12:12.200 に答える