2017-04-26 48 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的博客。我不知道为什么插入了这个断言,但它根本就没有位置。 –

相关问题