0

Wagtailチュートリアルhereに基づいてスニペットを作成しようとしています。ウェブページにスニペットが表示されない

私はmodels.pyに私のスニペットを構築し、templatetagsフォルダにカスタムテンプレートタグを作成して、ForeignKey経由Pageにスニペットを接続しています。また、htmlテンプレートを作成してmakemigrationsmigrateの両方を実行しました。

スニペットは、ホームページ以外のすべてのページに表示されるヘッダーイメージとキャプションです。コードは次のように:

スニペットモデル:

@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 }}を入力することであり、残念ながら働いていませんか?

答えて

0

問題を解決しました。誰かが同じようなことを経験した場合:

別のテンプレートのタグがbase.htmlにロードされていました。スニペットタグの付いたテンプレートはと同じPageテンプレートである必要があります。

関連する問題