【发布时间】:2021-08-19 14:09:25
【问题描述】:
我想创建一个视图集以允许 request.user(经过身份验证的用户)在他们关注的视图中接收用户。但我不知道如何为它制作一个合适的查询集过滤器。
模特(注:作者为后人,简介为后人)
class User(AbstractUser,PermissionsMixin):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
email = models.CharField(max_length=255,unique=True)
username =models.CharField(max_length=40,unique=True,default='undefinedusername')
class UserFollow(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
author = models.ForeignKey(User,on_delete=models.CASCADE,related_name='following')
profile = models.ForeignKey(User,on_delete=models.CASCADE,related_name='followers')
查看
class FetchUserViewSet(viewsets.ModelViewSet):
permission_classes = (IsAuthenticated,)
queryset = User.objects.all()
serializer_class = UserSerializer
filter_backends = [FollowedUserFilterBackend]
过滤器
class FollowedUserFilterBackend(filters.BaseFilterBackend):
def filter_queryset(self, request, queryset, view):
return queryset.filter(
???
)
我试过了
following__author = request.user
但它返回的是发出请求的用户,而不是被关注的用户。我该怎么做?
【问题讨论】:
标签: django