Как добавить переменные поля из 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