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

Как отобразить записи в профиле каждого пользователя Django?

Всем привет. Столкнулся с проблемой. Сделал каждому пользователю свой кабинет, дал возможность добавлять свои записи. На личной странице я смог отобразить записи авторизованного пользователя. Но не понимаю, как при переходе на личные страницы других пользователей отобразить их записи(замечу, что личные данные(записанные в другой модели) отображаются у каждого пользователя).
Модель
class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    first_name = models.CharField(max_length=30, verbose_name='Имя', default='Новый')
    last_name = models.CharField(max_length=30, verbose_name='Фамилия', default='Пользователь')
    position = models.CharField(max_length=100, verbose_name='Должность', default='Должность сотрудника')
    slug = models.SlugField(verbose_name="URL адрес", unique=True, blank=True, null=True, default='{}')
    bio = models.TextField(max_length=500, blank=True, verbose_name='Информация о человеке')
    birth_date = models.DateField(null=True, blank=True, verbose_name='Дата рождения')
    image = models.ImageField(null=True, blank=True, upload_to="image_profil", verbose_name='Фото профиля', default='default_photo')
#Эти данные получается отображать по ссылке в профиль
    def get_absolute_url(self):
        return reverse('user_url', kwargs={'slug': self.slug})


class Post(models.Model):
    datetime = models.DateTimeField(verbose_name=u"Дата", auto_now_add=True)
    author = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name=u"Автор", related_name="posts")
    text = models.CharField(max_length=1000, verbose_name=u"Текст", null=True, blank=True)
    image = models.FileField(verbose_name=u"Картинка", null=True, blank=True, default='default_photo')

А вот с выводом постов проблема, могу вывести данные только через id пользователя, если заменять номер во вью, а это собственно говоря чушь.
Вью
def user(request, slug):
    #Получение данных профиля конкретного пользователя, отображает данные пользователя
    get_user = get_object_or_404(Profile, slug__iexact=slug)

    #Новости на личной странице пользователя
    #А вот здесь уже не выходит задаю id=7 и на любой пользовательской странице
    #выдает записи пользователя с id=7 это как бы логично, но мне нужен другой результат
    user_post = User.objects.get(id=7)
    user_context=Post.objects.filter(author=user_post)
    context={
             'user_data': get_user,
             'user_context':user_context
}
    return render(request, 'accounts/profile_user.html',context)

И вообще не могу понять, как отобразить на личной странице пользователя его личные данные.
  • Вопрос задан
  • 1513 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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