2017-04-26 23 views
-1

我試圖在HTML中顯示來自網站的數據。如何從Django模板中的表中返回數據

我創建了一個在models.py稱爲Video類,如下所示:

class Video(models.Model): 
    filename = models.CharField("File Name", max_length=100) 
    title = models.CharField("Video Title", max_length=250) 

數據庫遷移,我能夠將數據插入到使用Django的形式吧。我檢查了數據庫中的數據。

我在我的HTML模板文件中有以下代碼,但是頁面在顯示時爲空,並且沒有顯示數據。

{% for video in Video %} 
<div class="row"> 

    <div class="col-md-3"> 

     <a href="{{ video.filename }}">{{ video.title }}</a> 

    </div> 

</div> 
{% endfor %} 

爲什麼不在呈現的HTML頁面中顯示任何數據?

編輯:

這是從視圖中的相關代碼:

def listvideos(request): 
    """Renders the listvideos page.""" 
    assert isinstance(request, HttpRequest) 
    return render(
     request, 
     'app/listvideos.html', 

    ) 
+0

我們需要查看視圖。你是否將所謂的視頻傳遞給模板? –

+0

哦謝謝,我會更新我的問題,不,我不是... – Gary

回答

2

模板只能使你傳遞給他們什麼。你沒有發送任何稱爲視頻,所以你不能迭代它。

return render(
    request, 
    'app/listvideos.html', 
    {'Video': Video.objects.all()} 
) 

你應該考慮是否真的要打電話給你的參數Video,雖然;它應該在這裏和模板中被稱爲videos

(並請刪除斷言一開始,它在生產代碼中沒有地位;其次要求將永遠是一個HttpRequest,那就是合同視圖的一部分)

+0

謝謝丹尼爾,完美的工作,非常感謝。該斷言是由VS2017自動生成的,我將刪除它。這個說法在做什麼?我現在會檢查文檔,但如果有一個簡單的解釋,爲什麼它不應該在那裏,那將是非常棒的聽到。 – Gary

+0

您是否還有更新的博客?我正試圖收集一些博客文章,但您的博客已經過時了:) – Gary

+1

是的,對不起,我現在還沒有真正寫關於Django的博客。我不知道爲什麼插入了這個斷言,但它根本就沒有位置。 –

相關問題