【问题标题】:Use an image in Wagtail's Base.html template在 Wagtail 的 Base.html 模板中使用图像
【发布时间】:2020-03-19 22:17:37
【问题描述】:

我希望通过从页面模型中拉取来向我的 base.html 添加一个徽标...但是我无法通过 wagtail 访问 base.html 页面模型,所以我不知道在哪里创建一个 ImageChooserPanel 来为我的导航栏指定徽标(应该应用于所有页面)。

【问题讨论】:

    标签: django python-3.x wagtail


    【解决方案1】:

    在你的 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

    【讨论】:

    • 除此之外,我还必须将 wagtail.contrib.settings 添加到我安装的应用程序中。但现在我不确定如何在我的基本模板中访问它。 {% image self.logo original as logo %} 在使用 时似乎不起作用。具体来说,加载的 URL 是空的。
    • 查看修改后的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-02
    • 1970-01-01
    相关资源
    最近更新 更多