カルーセルを作成するこれら 2 つの実装の違いは何ですか? どちらも同じことをしているように見えますが、一方には外部キーが明示的に定義されています。最初の実装は呼び出すことで簡単にプラグインできますが、2 番目の実装は ParentalKey を介してモデルに接続する必要があります。基本的に、ホームページに表示するカルーセルを実装するのに適したオプションはどれですか?
class ImageCarouselBlock(blocks.StructBlock):
image = ImageChooserBlock()
caption = blocks.TextBlock(required=False)
page = PageChooserBlock()
class Meta:
icon = 'image'
class CarouselItem(LinkFields):
image = models.ForeignKey(
'wagtailimages.Image',
null=True,
blank=True,
on_delete=models.SET_NULL,
related_name='+'
)
link_url = models.models.ForeignKey(
'wagtailcore.Page',
null=True,
blank=True,
on_delete=models.SET_NULL,
related_name='+'
)
caption = models.CharField(max_length=255, blank=True)
panels = [
ImageChooserPanel('image'),
FieldPanel('link_url'),
FieldPanel('caption'),
MultiFieldPanel(LinkFields.panels, "Link"),
]
class Meta:
abstract = True