Wagtailチュートリアルhereに基づいてスニペットを作成しようとしています。ウェブページにスニペットが表示されない
私はmodels.py
に私のスニペットを構築し、templatetags
フォルダにカスタムテンプレートタグを作成して、ForeignKey
経由Page
にスニペットを接続しています。また、htmlテンプレートを作成してmakemigrations
とmigrate
の両方を実行しました。
スニペットは、ホームページ以外のすべてのページに表示されるヘッダーイメージとキャプションです。コードは次のように:
スニペットモデル:
@register_snippet
class HeroImage(models.Model):
text = models.CharField(max_length=255)
image = models.ForeignKey(
'wagtailimages.Image',
null=True,
blank=True,
on_delete=models.SET_NULL,
related_name='+'
)
panels = [
FieldPanel('text'),
ImageChooserPanel('image'),
]
def __str__(self):
return self.text
スニペットカスタムテンプレートタグ:私は2つのスニペットを作成し、1を選択した
class MenuPage(Page):
hero = models.ForeignKey(
'home.HeroImage',
null=True,
blank=True,
on_delete=models.SET_NULL,
related_name='+'
)
content_panels = Page.content_panels + [
SnippetChooserPanel('hero'),
]
:ページに
@register.inclusion_tag('hero_image.html', takes_context=True)
def hero_images(context):
self = context.get('self')
if self is None or self.depth <= 2:
hero =()
else:
hero = HeroImage.objects.all()
return {
'hero': hero,
'request': context['request'],
}
スニペットを接続私のページの管理インターフェースで。テンプレートでは、スニペットへのさまざまな呼び出しを試みましたが、それらはすべて返されません。私が試してみましたコールが含まれます:
{{ page.hero }}
{{ page.hero.text }}
{{ hero.text }}
{{ page.hero_images }}
{{ page.hero_images.text }}
Etc...
何も私が働いて得ることができた唯一のことは、<QuerySet [<HeroImage: Lorem Ipsum One>, <HeroImage: Lorem Ipsum Two>]>
私が間違って何をやっているが返さ{{ hero }}
を入力することであり、残念ながら働いていませんか?