Wagtail 中的轮播图像问题

Trouble with Carousel images in Wagtail

我是 Django 的新手,也是 Wagtail 的初学者。

我正在建设的网站只有一个轮播,它在首页上。我在 models.py 中创建了以下两个模型:

class CarouselItem(Orderable):
    image = models.ForeignKey(
        'wagtailimages.Image',
        null=True,
        blank=True,
        on_delete=models.SET_NULL,
        related_name='+'
    )
    caption = models.CharField(max_length=255, blank=True)
    page = ParentalKey('HomePage', related_name='carousel_items')

    panels = [
    ImageChooserPanel('image'),
    FieldPanel('caption'),
    ]

class HomePage(Page):
    nila_intro = RichTextField(blank=True)

    content_panels = Page.content_panels + [
            InlinePanel('carousel_items', label="Carousel Items"),
            FieldPanel('nila_intro', classname="full"),
        ]

    class Meta:
        verbose_name = "Homepage"

为了正确设置模板标签,我参考了 Github 上的 Wagtail 演示站点,尝试复制已经完成的内容。

{% if page.carousel_items %}{% for carousel_item in page.carousel_items.all %}{{ carousel_item.caption }} 等基本操作工作正常。同样在管理员中,一切都完全符合我的预期。

然而,我在获取图像 and/or 图像 src url 时遇到问题。我已经尝试将以下内容添加到 src 但没有任何反应:{{ carousel_item.image.url }} 然后我尝试完全删除 <img> 标签并执行 {% image carousel_item.image alt="Slide Image" %} 它给了我一个错误。所以我真的不知道该怎么办!

我已经收录了{% load wagtailcore_tags wagtailimages_tags %}

也许我还不是 100% 清楚 ModelClusters 的工作原理?正如我所见,你们在演示中以不同方式管理轮播。

http://docs.wagtail.io/en/v1.10/topics/images.html 中所述,您需要在 {% image %} 标记上指定调整大小规则,例如 max-800x600,以指定图像插入模板时应如何调整大小。如果您根本不想调整图像大小,请使用 original:

{% image carousel_item.image original alt="Slide Image" %}

作为另一个 wagtail 学习者,Gasman 的答案看起来是正确的,文档封面图片使用得很好。此外,您的模型看起来不错或至少与我们的相似。

对我来说,我需要使用 'as' 语法来创建手动图像标签,以避免 "width" 和 "height" 属性似乎与旋转木马。即:

{% image theme.card_image fill-262x344 as photo %}
<img src="{{ photo.url }}" alt="" class="carousel-img"/>