2017-05-05 32 views
0

所以,我在做這個程序在Django和使用此代碼:Django的:型號查詢提取模板不循環

我在video_select.py文件模板標籤:

@register.assignment_tag 
def content_list(): 
    contentlist = vvideo.objects.all() 
    return contentlist 

我的模板:

{% load video_select %} 
<article id="menu" style="height:80%;"> 
    <h2 class="major">Menu</h2> 
    <div> 
     {% for contentt in content_list %} {{ contentt.video_path }} {% endfor %} 
    </div> 
    <h2 class="major">End Menu</h2> 
</article> 

這不顯示任何內容。但我不知道爲什麼。

相反,只需打印出{%CONTENT_LIST%}並打印輸出:

[<vvideo: vvideo object>, <vvideo: vvideo object>, <vvideo: vvideo object>, <vvideo: vvideo object>, <vvideo: vvideo object>, <vvideo: vvideo object>] 

所以很明顯的模板標籤的工作。我的models.py包含:

class vvideo(models.Model): 
    video_path = models.CharField(max_length=200, blank=True, null=True) 

因此,顯然.video_path引用也是正確的。

你能幫我理解爲什麼我的列表沒有循環打印&?我試着直接在模板標籤中迭代它,它正在工作。不過,我真的希望循環在模板中運行,因爲我正在爲每個視頻創建href鏈接。因此,我需要遍歷數據庫中的所有視頻並提取它們的名稱和url,創建相應的鏈接。這是每行輸出所需的兩個項目:因此,最好將對象列表發送到模板,並讓它在循環中提取視頻的url和名稱。

+2

是否有機會讓所有video_path值爲空?我會嘗試{{contentt.id}},看看你是否有任何東西 –

回答

0

實際上,您必須先調用模板標記並將其分配給變量,然後才能使用它,您不能僅將其引用爲變量本身就可以。

{% content_list as my_content %} 
{% for contentt in my_content %} {{ contentt.video_path }} {% endfor %} 
+0

這工作,謝謝你! –