我是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如何运作?正如我所看到的那样,你们在演示中管理旋转木马的方式不同。
答案 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"/>