簡體   English   中英

在 Django 社交媒體項目中獲取用戶的關注者列表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM