Получить сообщения пользователя, используя представления на основе классов?
Создавая проект блога, как мне получить записи конкретного пользователя, используя представления на основе классов?
То, что у меня есть на данный момент, работает, но оно неполное. Я могу сортировать сообщения любого пользователя, но если я пытаюсь получить сообщения текущего зарегистрированного пользователя, это происходит с моей боковой панелью навигации.
Вот что у меня есть на данный момент
views.py
class UserIssueListView(ListView):
model = Issue
template_name = 'issues/user_issues.html'
context_object_name = 'issues'
paginate_by = 5
def get_queryset(self):
user = get_object_or_404(User, username=self.kwargs.get('username'))
return Issue.objects.filter(author=user).order_by('-date_posted')
nav.html
<div id="nav-menu">
<ul class="nav-menu-items">
<div id="navbar-toggle">
<a href="#" class="menu-bars" id="hide-menu">
<i class="fas fa-bars nav-icon"></i>
</a>
<a href="#"><h3 class="text-white">Bug Tracker</h3>
</a>
</div>
<hr />
<div class="nav-section">
<li class="nav-text"><a href="{% url 'dashboard' %}"><i class="fas fa-home nav-icon"></i>Dashboard</a></li>
<li class="nav-text"><a href="{% url 'issues-home' %}"><i class="fas fa-fire nav-icon"></i>Recent Issues</a></li>
<li class="nav-text"><a href=""><i class="fab fa-youtube nav-icon"></i>My Projects</a></li>
</div>
<hr />
<div class="nav-section">
{% for issue in issues %}
<li class="nav-text"><a href="{% url 'user-issues' issue.author.username %}"><i class="fas fa-play-circle nav-icon"></i>My Posts</a></li>
{% endfor %}
<li class="nav-text"><a href=""><i class="fas fa-history nav-icon"></i>User Profile</a></li>
<!-- <li class="nav-text"><a href=""><i class="fas fa-clock nav-icon"></i>Subscriptions</a></li> -->
</div>
</ul>
</div>
Я подозреваю, что это из-за цикла for, но я застрял на том, как действовать дальше. Как мне получить только сообщения текущего зарегистрированного пользователя?
Попробуйте так
def get_queryset(self):
queryset = super(UserIssueListView, self).get_queryset()
queryset = queryset.filter(author=self.request.user).order_by('-date_posted')
return queryset
