我正在尝试制作一个用缩略图填充的页面,每个缩略图都会重定向一个页面,其中包含客户自己添加的视频。
我的models.py
页面:
class HomePage(Page):
body = RichTextField(blank=True)
main_vid = EmbedVideoField(
verbose_name="Video",
null=True,
blank=True,
)
content_panels = Page.content_panels + [
FieldPanel('body', classname="full"),
FieldPanel('main_vid'),
]
class HomePageGallery(Page):
vid_image = models.ForeignKey(
'wagtailimages.Image', on_delete=models.SET_NULL, related_name='+', null=True
)
content_panels = Page.content_panels + [
ImageChooserPanel('vid_image'),
InlinePanel('video', label='video'),
]
class VideoBasedModel(models.Model):
page = ParentalKey(HomePageGallery, on_delete=models.PROTECT, related_name='video')
video = EmbedVideoField(
verbose_name="Video",
null=True,
blank=True,
)
我有一个HomePageGallery
页面,工作正常,但当我点击它时,我添加的视频没有显示。
我的home_page_gallery.html
{% extends "base.html" %}
{% load static wagtailcore_tags wagtailimages_tags embed_video_tags %}
<link rel="stylesheet" href="{% static 'home/css/main.css' %}">
{% block title %}Ion Matei | Servicii Photo, Video{% endblock %}
{% block content %}
<div class="lists">
{% for vid in self.video.all %}
<div class="welcome-video">
{% video vid '800x600' %}
</div>
{% endfor %}
</div>
{% endblock %}
答案 0 :(得分:2)
假设video
模板标记期望从EmbedVideoField
接收值:{% video vid '800x600' %}
可能需要{% video vid.video '800x600' %}
。
self.video.all
为您提供了一系列VideoBasedModel
个对象,因此每个vid
值都是VideoBasedModel
个对象。 video
标记(可能)不知道如何处理此对象 - 您必须将该对象的video
字段传递给它。