#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 %}