Я мучился с отображением имени пользователя на страницах профилей пользователей в моем личном проекте. Следующее изображение - это вид, который я хотел бы дать. У него есть имя пользователя вверху и биография, за которой следуют сообщения от указанного c пользователя.
Вид, который я хочу дать
Однако на самом деле Я получаю следующее представление:
Вид, который я получаю
Как я могу добавить имя пользователя и биографию на страницу сообщений пользователя? Вот несколько файлов, которые, вероятно, связаны с этой проблемой:
user_posts. html:
<h1>{{ view.kwargs.username }}'s Profile</h1>
<p>{{ user.bio }}</p>
<h2 class="mb-3">Posts by {{ view.kwargs.username }} ({{ page_obj.paginator.count }})</h1>
{% for post in posts %}
<article class="media content-section">
<div class="media-body">
<div class="article-metadata">
<a class="mr-2" href="{% url 'situmon:user-posts' post.author.username %}">{{ post.author }}</a>
<small class="text-muted">{{ post.published_posted|date:"F d, Y" }}</small>
</div>
<h2><a class="article-title" href="{% url 'situmon:post-detail' post.id %}">{{ post.title }}</a></h2>
<p class="article-content">{{ post.content }}</p>
</div>
</article>
{% endfor %}
home. html:
{% for post in posts %}
<article class="media content-section">
<div class="media-body">
<h2 class="article-title"><a href="{% url 'situmon:post-detail' post.id %}">{{ post.title }}</a></h2>
<a href ="{% url 'situmon:user-posts' post.author.username%}">{{ post.author }}</a>
<p class="article-content">{{ post.description }}</p>
<div>
<!--
<time class="text-muted">
datetime="{{ post.updated_at | date:'Y-m-d' }}">{{ post.updated_at | naturaltime }}
</time>
-->
<!--
{% for tag in post.tags.all %}
<span class="tag" data-pk="{{ tag.pk }}">{{ tag.name }}</span>
{% endfor %}
-->
</div>
</div>
</article>
urls. py:
from django.urls import path
from . import views
app_name = 'situmon'
urlpatterns = [
path('user/<str:username>', views.UserPostListView.as_view(), name='user-posts'),
]
views.py:
from django.shortcuts import render, get_object_or_404
from django.contrib.auth.mixins import LoginRequiredMixin, UserPassesTestMixin
from users.models import CustomUser
from django.views.generic import (
ListView,
DetailView,
CreateView,
UpdateView,
DeleteView
)
from .models import Post
def home(request):
context = {
'posts': Post.objects.all()
}
return render(request, 'situmon/home.html', context)
class UserPostListView(ListView):
model = Post
template_name = 'situmon/user_posts.html'
context_object_name = 'posts'
paginate_by = 10
def get_queryset(self):
user = get_object_or_404(CustomUser, username=self.kwargs.get('username'), )
return Post.objects.filter(author=user).order_by('-id')
Скажите, пожалуйста, есть ли что-то, чего мне не хватает. Спасибо.