Задать вопрос
@Juvel1988

Почему аватар пользователя отображается некорректно?

Пишу новостной сайт на Django и столкнулся со следующей проблемой. Я расширил Django User Model методом AbstractUser, добавив биографию и аватар, с помощью модели User.
На данный момент у меня создано два пользователя в админке. Оба являются авторами статей. Проблема заключается в том, что при публикации новости от второго автора, у него отображается тот же самый аватар, что и у первого, хотя они разные. Почему так происходит?

models.py
class User(AbstractUser):
    bio = models.TextField(max_length=500, blank=True, verbose_name='Информация о пользователе: ')
    avatar = models.ImageField(verbose_name='Аватар: ')

class News(models.Model):#Новости
    title = models.CharField('Заголовок', max_length=250)
    slug = models.SlugField(max_length=50,unique=True)
    author = models.ForeignKey(User, on_delete=models.CASCADE, 
    related_name='news_posts', null=True, blank=True)
    main_photo = models.ImageField('Постер', null = True, blank = True, upload_to='prosvet/media/images/main')
    anons = models.CharField(max_length=350)
    body = RichTextUploadingField(
                                    null=False,
                                    blank=False,
                                    # config_name='toolbar_Custom',
                                    external_plugin_resources=[(
                                        'youtube',
                                        '/static/ckeditor/ckeditor/plugins/youtube/',
                                        'plugin.js',
                                    )],
                                    )
    date_added = models.DateTimeField(auto_now_add=True)


admin.py
from django.contrib import admin
from prosvet_logs.models import About_us, News, Contacts, Cooperation, Dialogs, Monologs, Projects, Mission, User
admin.site.register(User)
class PostAdmin(admin.ModelAdmin):
    prepopulated_fields = {"slug": ("title",)}


settings.py

AUTH_USER_MODEL = 'prosvet_logs.User'

vews.py
def articles(request):#Страница новостей
        news = News.objects.order_by('-date_added') 
        context = {'new': news}
        return render(request, 'prosvet_logs/news.html', context)


def el(request, el_id): #Вывод отдельной новости
    news = News.objects.get(id=el_id)
    context = {'news':news}
    return render(request, 'prosvet_logs/article.html', context)


article.html - здесь рендерится новость
{% extends "prosvet_logs/base.html" %}
{% load static %}
{% block content %}

<link rel="stylesheet" href="{% static 'styles/main.css' %}">
<div>
    
    <h2>{{ news.title }}</h2>
    <p>{{ news.date_added|date:'M d, Y H:i' }}</p>
    <p>{{ news.body|safe }}</p>

    <div id="author">
        <p> {{ news.author }}</p>
        <p><img src="{{ user.avatar.url }}" height="160" align="bottom" /></p>
    </div>

</div>

{% endblock content %}
  • Вопрос задан
  • 244 просмотра
Подписаться 1 Простой 2 комментария
Решения вопроса 1
view как раз-таки и играет ключевую роль) но не в этом случае

используйте

<p><img src="{{ news.author.avatar.url }}" height="160" align="bottom" /></p>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы