【问题标题】:Favicon Image not showing in base.htmlFavicon 图片未显示在 base.html 中
【发布时间】:2020-05-24 22:05:34
【问题描述】:

我正在尝试在 favicon 中添加一个图像,但由于某种原因它没有在模板 base.html 中显示,它只在另一个模板中显示,仅称为:who_we_are.html 我还在下面编写了它的 views.py .

我希望它在基础中显示在所有页面上。这是一个在项目中称为营销的应用程序,我认为原因没有显示,因为 URL 没有读取基本 HTML

我已经编写了models.py,其功能如下:

class Setting(models.Model):
    title = models.CharField(max_length=60)
    favicon = models.ImageField(
        blank=True, upload_to='Marketing', verbose_name="Pages Icon")

    def __str__(self):
        return self.title

    def get_favicon(self):
        return "%s/%s" % (settings.MEDIA_URL, self.favicon)

这里是views.py

def base(request):
    setting = Setting.objects.get()
    template = 'base.html'
    context = {'setting': setting}
    return render(request, template, context)


def who_we_are(request):
    setting = Setting.objects.get()
    template = 'who_we_are.html'
    context = {'setting': setting}
    return render(request, template, context)

这是base.html

<head>
    <link rel="icon" class="rounded-circle" href="{{ setting.get_favicon }}" type="image/jpg" sizes="16x16">

这是网址

urlpatterns = [

    path('who_we_Are/', who_we_are, name='who_we_are'),
]

谢谢

【问题讨论】:

  • 这应该是{{ setting.favicon.url }}
  • 不,不是这样,但我认为基础应该在 URL 中吗?
  • 嘿伙计,你没有标记答案,解决方案不起作用吗?
  • @sahil 抱歉,我误点击了它,我认为问题在于 url 它没有读取基础
  • 你应该在 python shell 上检查 get_favicon 的输出。

标签: django


【解决方案1】:

您的模型属性 get_favicon 正在返回 MEDIA_URL 和一个 ImageField 对象,您可以修改您的方法以返回网站图标的 URL。

编辑 - 尝试在您的 get_favicon 方法上方添加 @property 装饰器。

@property
def get_favicon(self):
    return self.favicon.url

【讨论】:

  • 您不需要在 urls.py 中包含任何内容,只要您在 settings.py 中设置了 MEDIA_URL 并且使用 self.favicon.url 的 MEDIA_ROOT 应该可以工作
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-24
  • 2021-10-23
  • 1970-01-01
相关资源
最近更新 更多