Как добавить переменные поля из HomePage в поток StructBlock

Здравствуйте, у меня есть сомнения по поводу того, как я могу отобразить информацию со страницы модели на блок, в частности, на structblock.

На моей модели домашней страницы есть несколько charfields, где я храню ссылки на социальные медиа сайта, и я хочу знать, как я могу вывести эти ссылки внутри шаблона structblock на моих потоках, дополнительно я хочу знать, возможно ли это и для img, вот что я пробовал до сих пор:

home/models.py

class HomePage(Page):
    template = "home/home_page.html"
    landing_page_template = "home/home_page.html"

    social_media_display = BooleanField(blank=True, default=True)
    facebook_link = CharField(max_length=200, default="#")
    instagram_link = CharField(max_length=200, default="#")
    twitter_link = CharField(max_length=200, default="#")
    youtube_link = CharField(max_length=200, default="#")

    logo_image = models.ForeignKey(
        "wagtailimages.Image",
        null=True,
        blank=False,
        on_delete=models.SET_NULL,
        related_name="+"
    )

Streams/blocks.py

class FooterPlus(blocks.StructBlock):
    tlf = blocks.CharBlock(required=True, max_length=20, label="Tlf", default="+58")
    email = blocks.CharBlock(required=True, max_length=20, label="Email", default="")

    class Meta:
        template = "streams/parts/footer_plus.html"
        icon = "plus"
        label = "Footer plus"

footer_plus.html

<a href="{{self.facebook_link}}" class="list-group-item list-group-item-action"></a>

Итак, пара моментов. В вашем шаблоне footer_plus.html, self - это StructBlock, поэтому у него не будет ссылки facebook_link. Сейчас вы храните эту информацию только в экземплярах модели HomePage. Если вы каким-то образом поместите FooterPlus на экземпляр домашней страницы, вы, вероятно, сможете ссылаться на него как page.facebook_link.

Но я думаю, что вы, вероятно, действительно хотите сделать так, чтобы ссылки на социальные сети были доступны для всех страниц вашего сайта, чтобы у вас был последовательный нижний колонтитул. Я бы рекомендовал вам использовать модуль настроек Wagtail: https://docs.wagtail.org/en/stable/reference/contrib/settings.html

Вернуться на верх