[英]Getting List of user's followers in Django Social Media project
在我的項目中,我試圖顯示其他用戶的關注者和關注者的列表。 現在它只有請求用戶的。 這是我的模型和視圖:
楷模
class Profile(models.Model):
user = models.OneToOneField(settings.AUTH_USER_MODEL, related_name='profile',
on_delete=models.CASCADE)
followers = models.ManyToManyField(User, related_name='following', blank=True)
觀看次數
class FollowersPageView(LoginRequiredMixin, ListView):
model = Profile
paginate_by = 20
template_name = 'users/followers.html'
context_object_name = 'users'
def get_queryset(self, **kwargs):
return self.request.user.profile.followers.all()
class FollowingPageView(LoginRequiredMixin, ListView):
model = User
paginate_by = 20
template_name = 'users/following.html'
context_object_name = 'profiles'
def get_queryset(self, **kwargs):
return self.request.user.following.all()
網址
**(Old url)**
re_path(r'^u/followers$', users_views.FollowersPageView.as_view(),
name='view_all_followers'),
**(New url)**
re_path(r'^u/(?P<username>[\w.@+-]+)/followers$',
users_views.FollowersPageView.as_view(), name='view_all_followers'),
我試圖將 FollowersPageView 的 get_queryset 更改為以下內容,但收到錯誤消息:
def get_queryset(self, **kwargs):
user_username = self.kwargs['username']
user_followers = Profile.objects.filter(followers=user_username)
return user_followers
謝謝
試試這個:
from django.shortcuts import get_object_or_404
from django.contrib.auth import get_user_model
User = get_user_model()
def get_queryset(self, **kwargs):
user_username = self.kwargs['username']
user = get_object_or_404(User, username=user_username)
user_followers = user.followers.all()
return user_followers
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.