2013-03-28 87 views
3

我有一個Django(1.5)模板標籤,我在部分視圖中使用它來呈現一些隨機內容。該標籤對單個記錄進行查詢。我沒有問題返回一個單一的項目,但當試圖發回全部使用對象或多個項目,我遇到了麻煩。Django模板標籤 - 返回多個值或對象

這是我的標籤

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

我希望能夠既record.text和record.id返回模板標籤

爲了使我有這個標籤我_footer.html觀點

{% load current_tags %} 
{% get_random_testimonial %} 

有沒有一種方法,我可以只返回的記錄對象的nd能夠得到該對象的所有值類似於:

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

回答

11

這對於包含標記沒有意義。特別是因爲你似乎正在使用它在你已經告訴它呈現相同的模板。

你需要的是一個assignment tag

@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 }} 
+0

感謝丹尼爾,新模板標籤和有點在2每當之間的區別感到困惑應該使用。 – xXPhenom22Xx