Показать изображение профиля в навигационной панели - PullRequest
0 голосов
/ 09 июля 2019

Я создаю свой собственный блог-сайт.

Мне удалось заставить пользователей загружать свои собственные изображения профиля и отображать их рядом со своим сообщением, но теперь я хочу, чтобы это изображение отображалось на панели навигации как изображение профиля, но когда я делаю это таким же образомя сделал это с сообщениями, это не работает и выглядит следующим образом.

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 или локального файла), оноработает отлично, но когда я использую эту переменную для вызова изображения, она не работает

Возможно, стоит упомянуть, что секции navbar и post находятся в разных html-файлах.похоже, что html-файл панели навигации не имеет доступа к этой переменной?

Что я делаю не так?

1 Ответ

1 голос
/ 09 июля 2019

Попробуйте это:

<img class="rounded-circle article-img" src="{{ request.user.profile.image.url }}" id="img"> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...