Wouse中的轮播图像问题

时间:2017-05-10 17:00:30

标签: python django 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 Demo网站尝试复制已经完成的工作。

{% if page.carousel_items %}{% for carousel_item in page.carousel_items.all %}{{ carousel_item.caption }}等基本操作运行正常。在管理员中,一切都完全按照我的意图。

但是我在显示图片和/或图片src网址时遇到了问题。我已经尝试将以下内容添加到src并且没有发生任何事情:{{carousel_item.image.url}}然后我尝试完全删除<img>标记并执行{% image carousel_item.image alt="Slide Image" %}它给出了我错了。所以我不确定该怎么做!

我已加入{% load wagtailcore_tags wagtailimages_tags %}

也许我不是100%明白ModelClusters如何运作?正如我所看到的那样,你们在演示中管理旋转木马的方式不同。

2 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:0)

作为另一个令人讨厌的学习者,Gasman的答案看起来是正确的,而且文档很好地涵盖了图像。您的模型看起来很好或至少与我们的相似。

对我来说,我需要使用&#39; as&#39;用于创建手动图像标记的语法,以避免&#34; width&#34;和&#34;身高&#34;在旋转木马中似乎混淆了一些图像响应的属性。那就是:

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