首页 > 解决方案 > 在导航栏中显示个人资料图像

问题描述

我正在建立自己的博客网站。

我设法让用户上传他们自己的个人资料图片并将其显示在他们的帖子旁边,但现在我希望将相同的图像作为个人资料图像显示在导航栏中,但是当我这样做时,我以同样的方式处理帖子它不起作用,看起来像这样。

查看导航栏的右侧

对于帖子,我制作了个人资料图像模型并从 html 文件中访问了变量,但相同的方法不适用于在导航栏中显示它。

我正在使用 python 和 django 作为后端。

这是我的个人资料图像的模型代码:

from django.db import models
from django.contrib.auth.models import User
from PIL import Image

class Profile(models.Model):
  user = models.OneToOneField(User, on_delete=models.CASCADE)
  image = models.ImageField(default="default.jpg", upload_to="profile_pics")

  def __str__(self):
     return f"{self.user.username} Profile"

  def save(self, *args, **kwargs):
     super().save(*args, **kwargs)

      img = Image.open(self.image.path)
      if img.height > 300 or img.width > 300:
          output_size = (300, 300)
          img.thumbnail(output_size)
          img.save(self.image.path)

这就是我在我的 html 文件中引用它以显示在帖子旁边的方式:

<img class="rounded-circle article-img" src="{{ post.author.profile.image.url }}" id="img"> 

当我使用任何其他图像(来自 url 或本地文件)时,它可以正常工作,但是当我使用该变量调用图像时,它不起作用

值得一提的是,导航栏和帖子部分位于不同的 html 文件中。看起来导航栏的 html 文件无权访问该变量?

我究竟做错了什么?

标签: htmlcssdjangopython-3.xbootstrap-4

解决方案


尝试这个:

<img class="rounded-circle article-img" src="{{ request.user.profile.image.url }}" id="img"> 

推荐阅读