Отображается изображение Django по умолчанию

#django #django-models #django-forms

#django #django-модели #django-forms

Вопрос:

почему я не вижу изображение по умолчанию здесь, ниже приведены моя модель и profile.html файл:

Модель:

 from django.db import models
from django.contrib.auth.models import User
# Create your models here.

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

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

Profile.html:

 {% extends 'blog/base.html' %}
    {% load crispy_forms_tags %}
    {% block content %}
        <div class="content-section">
            <div class="media">
            <img class="rounded-circle account-img" src="{{ user.profile.image.url }}">
            <div class="media-body">
                <h2 class="account-heading">{{ user.username }}</h2>
                <p class="text-secondary">{{user.email}}</p>
            </div>
            </div>
            <!-- FORM HERE -->
        </div>
    {% endblock content %}
 

Заранее благодарю вас…

Комментарии:

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

2. Это не очень хорошая идея делать это так. Вы должны просто проверить в шаблоне, есть ли у пользователя изображение профиля, и если нет, показать изображение по умолчанию.

3. я загрузил изображение в папку мультимедиа с именем default.jpg . таким образом, я должен использовать это изображение по умолчанию для всех пользователей, если я не загрузил для них конкретное изображение, но оно этого не делает

Ответ №1:

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

  {% if user.profile.image %}
 <img src="{{ user.profile.image.url }}">
 {% else %}
 <img src="{% static 'img/default.png' %}">
 {% endif %}