【发布时间】:2017-05-05 00:16:40
【问题描述】:
所以,我正在 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 和名称。
【问题讨论】:
-
有没有可能你所有的 video_path 值都是空白的?我会试试 {{contentt.id}} 看看你有什么收获
标签: django django-template-filters