Отображение информации другого пользователя в профиле (не вошедшего пользователя)
Я работаю над проектом для школы, это что-то вроде mini-stackoverflow. Итак, у меня есть раздел, где пользователи могут нажать на создателя сообщения, и это приведет их на страницу, где они смогут увидеть информацию о пользователе и все созданные им сообщения. Итак, пока код для списка постов пользователя идеален, но я не могу добиться корректного отображения информации профиля.
Чтобы объяснить проблему более простым способом, она заключается в том, что если я нажимаю на профиль winston1420, вместо этого мне показывается другой профиль (вошедшего пользователя)
Мой профиль на 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>
<p class="text-secondary">{{ user.first_name }} {{ 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>
Список сообщений моего пользователя
<div class="container my-5">
<div class="row justify-content">
<div class="col-lg-6">
<h2>Publicaciones de <strong><a href="">{{ view.kwargs.username }}</a></strong> ({{ page_obj.paginator.count }}) </h2>
<br>
</div>
</div>
{% for post in posts%}
<article class="media post-content-section">
<img class="rounded-circle article-img" src="{{ post.author.profile.image.url }}">
<div class="media-body">
<div class="article-metadata">
<a class="mr-2" href="{% url 'user-posts' post.author.username %}">{{ post.author }}</a>
<small class="text-muted">{{ post.date_posted|date:"j / m / Y" }}</small>
</div>
<h2><a class="article-title" href="{% url 'post-detail' post.id %}">{{ post.titulo }}</a></h2>
<!-- <p class="article-content">{{ post.contenido }}</p> -->
</div>
</article>
{% endfor %}
<br>
{% if is_paginated %}
<Center>{% if page_obj.has_previous %}
<a class="btn btn-outlife-info mb-4" href="?page=1">Primera Página</a>
<a class="btn btn-outlife-info mb-4" href="?page={{ page_obj.previous_page_number }}">Página Anterior</a>
{% endif %}
{% for num in page_obj.paginator.page_range %}
{% if page_obj.number == num %}
<a class="btn btn-info mb-4" href="?page={{ num }}">{{ num }}</a>
{% elif num > page_obj.number|add:'-3' and num < page_obj.number|add:'3' %}
<a class="btn btn-outline-info mb-4" href="?page={{ num }}">{{ num }}</a>
{% endif %}
{% endfor %}
{% if page_obj.has_next %}
<a class="btn btn-outlife-info mb-4" href="?page={{ page_obj.next_page_number }}">Siguiente Página</a>
<a class="btn btn-outlife-info mb-4" href="?page={{ page_obj.paginator.num_pages }}">Última Página</a>
{% endif %}</center>
{% endif %}
</div>
Просмотры пользователей
@login_required
def profile(request):
if request.method == 'POST':
u_form = UserUpdateForm(request.POST, instance=request.user)
p_form = ProfileUpdateForm(request.POST, request.FILES, instance=request.user.profile)
if u_form.is_valid() and p_form.is_valid():
u_form.save()
p_form.save()
messages.success(request, f'¡Tu perfil se ha actualizado correctamente!')
return redirect('profile')
else:
u_form = UserUpdateForm(instance=request.user)
p_form = ProfileUpdateForm(instance=request.user.profile)
context = {
'u_form': u_form,
'p_form': p_form
}
return render(request, 'users/profile.html', context)
Пост список просмотров
class PostListView(ListView):
model = Post
template_name = 'forum/forum_main.html'
context_object_name = 'posts'
ordering = ['-date_posted']
paginate_by = 5
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')
Итак, как вы видите, для списка постов я использовал kwargs, но я не могу сделать то же самое для профиля, кроме имени пользователя, которое я уже сделал. Как я могу это сделать?
Советы или ссылки на документацию также приветствуются.
Вот изображение для справки: