在导航栏中显示个人资料图像

时间:2019-07-08 21:27:52

标签: html css django python-3.x bootstrap-4

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

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

Look at the right side of the nav bar

对于帖子,我制作了个人资料图片模型并从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文件无权访问该变量?

我在做什么错了?

1 个答案:

答案 0 :(得分:1)

尝试一下:

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