Django: Поле изображения не отображается - PullRequest
1 голос
/ 03 августа 2020

Итак, мое изображение не отображается, вот мой код: models.py:

from django.contrib.auth.models import User
from django.db import models
from django.conf import settings
from django.utils.translation import gettext_lazy as _

class ProfileImage(models.Model):
    """
    Profile model
    """
    user = models.OneToOneField(
        verbose_name=_('User'),
        to=settings.AUTH_USER_MODEL,
        related_name='profile',
        on_delete=models.CASCADE
    )
    avatar = models.ImageField(upload_to='profile_image')

settings.py:

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'mifamiliaesundesastre/media')

urls.py:

from django.contrib import admin
from django.urls import path, include
from Home.views import home_view
from accounts.views import login_view, register_view, logout_view, user_home
from chat.views import Messages

from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', home_view, name='home'),
    path('login/', login_view),
    path('signup/', register_view),
    path('logout/', logout_view),
    path('home/', user_home),
    path('messages/', include('chat.urls')),
    path('messages/', Messages),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

user_home. html:

 <img src="{{ user.profileimage.avatar.url }}" alt="profile image">

Я все сделал правильно, также я вижу свои изображения в своих медиа-папках, но в моем шаблоне не отображается, кто-нибудь знает, что не так мой код?

1 Ответ

1 голос
/ 03 августа 2020

Sin c related_name='profile' в ForeignKey это 'profile', вы получаете доступ к нему с помощью

<img src="{{ user.<b>profile</b>.avatar.url }}" alt="profile image">

Параметр related_name=… [Django -doc] - это имя отношения в обратном . Таким образом, чтобы получить связанный объект ProfileImage из объекта User.

Вы также можете изменить related_name=… на related_name='profileimage', тогда вы, конечно, используете {{ user.profileimage.avatar.url }}.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...