Получение информации о профиле конкретного пользователя

В моем веб-приложении я пытаюсь добавить функцию нажатия на автора определенного сообщения и возможность увидеть его профиль, а также сообщения, созданные этим пользователем. Мне удалось заставить список постов работать просто отлично, но когда я пытаюсь вызвать данные конкретного пользователя, он дает мне данные зарегистрированного пользователя.

Вот как я вызываю профиль пользователя в HTML:

        <section class="py-5">
        <div class="container my-5">
            <div class="row justify-content">
                <div class="col-lg-6">
                    <div class="content-section">
                        <div class="media">
                          <img class="rounded-circle profile-img" src="{{ user.profile.image.url }}"/>
                          <div class="media-body">
                            <h2 class="account-heading">{{ view.kwargs.username }}</h2> <!-- only This works -->
                            <p class="text-secondary">{{ view.kwargs.username }} {{ user.last_name }}</p>
                            <p class="text-secondary">{{ user.email }}</p>
                            <div class="container">
                               <p class="lead"><Strong>Sobre mi:</strong></p>
                               <p class="lead">{{ user.description }}</p>
                            </div>
                            <br>
                            <p class="text-secondary">Se unió el {{ user.date_joined }}</p>
                            <p class="text-secondary">Última vez visto: {{ user.last_login }}</p>
                            <p class="mb-0">{{ user.profile.about }}</p>
                        </div>
                    </div>
                </div>
            </div>
        </div>

Вот мои взгляды:

class UserPostListView(ListView):
model = Post
template_name = 'forum/user_posts.html'
context_object_name = 'posts'
paginate_by = 5

def get_queryset(self):
    user = get_object_or_404(User, username=self.kwargs.get('username'))
    return Post.objects.filter(author=user).order_by('-date_posted')

Вот как выглядит проблема:

enter image description here

Как вы можете видеть, это профиль Yonas1420, но он возвращает только правильное имя пользователя, потому что изображение профиля, имя и фамилия, биография пользователя, последний вход, день регистрации, все Винстон1420, он же зарегистрированный пользователь.

Решил проблему, создав новый вид:

class UserProfileView(ListView):
model = Post
template_name = 'forum/user_profile.html'
context_object_name = 'posts'
paginate_by = 1

def get_queryset(self):
    user = get_object_or_404(User, username=self.kwargs.get('username'))
    return Post.objects.filter(author=user).order_by('-date_posted')

Логика заключается в том, что он будет извлекать сообщения пользователей, так что я могу получить информацию о конкретном пользователе с помощью таких команд, как {{ post.author.first_name }}, которые я могу использовать только при извлечении сообщений пользователя с помощью {% for post in posts %}, теперь ключевым фактором для того, чтобы это работало, является пагинация, не имеет значения, сколько сообщений у пользователя, поскольку paginate_by = 1 будет вызывать только одно сообщение, независимо от общего количества сообщений, и поскольку извлекается только одно сообщение, цикл for будет выполняться только один раз, в результате чего вся информация пользователя будет успешно отображена только один раз.

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

Вернуться на верх