【发布时间】:2020-03-19 22:17:37
【问题描述】:
我希望通过从页面模型中拉取来向我的 base.html 添加一个徽标...但是我无法通过 wagtail 访问 base.html 页面模型,所以我不知道在哪里创建一个 ImageChooserPanel 来为我的导航栏指定徽标(应该应用于所有页面)。
【问题讨论】:
标签: django python-3.x wagtail
我希望通过从页面模型中拉取来向我的 base.html 添加一个徽标...但是我无法通过 wagtail 访问 base.html 页面模型,所以我不知道在哪里创建一个 ImageChooserPanel 来为我的导航栏指定徽标(应该应用于所有页面)。
【问题讨论】:
标签: django python-3.x wagtail
在你的 models.py 文件中添加 setting:
from django.db import models
from wagtail.contrib.settings.models import BaseSetting, register_setting
from wagtail.images.models import Image
from wagtail.images.edit_handlers import ImageChooserPanel
@register_setting
class SiteSettings(BaseSetting):
logo = models.OneToOneField(Image, null=True, blank=True, on_delete=models.SET_NULL, related_name='+', verbose_name='Business logo')
panels = [
ImageChooserPanel('logo'),
]
在您的管理员设置菜单中,您现在将看到站点设置。单击它以选择您的徽标。
在顶部的模板中:
{% load wagtailimages_tags %}
然后渲染:
{% image settings.app_label.SiteSettings.logo width-300 %}
其中app_label 是您拥有models.py 文件的应用程序/文件夹。
参考:https://docs.wagtail.io/en/latest/reference/contrib/settings.html#using-in-django-templates
【讨论】: