【发布时间】:2020-12-20 01:32:05
【问题描述】:
我的 ViewSet 如下所示:
class ClientViewSet(viewsets.ModelViewSet):
queryset = models.Client.objects.all()
serializer_class = serializers.ClientSerializer
def filter_queryset(self, queryset):
return models.Client.objects.filter(**self.request.data)
def get_queryset(self):
return models.Client.objects.filter(owner=self.request.user)
模型如下所示:
class Client(models.Model):
owner = models.ForeignKey(User, on_delete=models.CASCADE, null=True)
name = models.CharField(max_length=100, blank=True, null=True)
def __str__(self):
return str(self.id)
所以,我正在尝试过滤客户端,以便只向他们呈现当前用户的客户端。但是,GET api/clients 仍然返回所有用户的所有客户端。 我做错了什么?
【问题讨论】:
-
那是因为你没有进一步处理
filter_queryset中的queryset。 -
使用django-filter包,非常方便的工具
标签: python-3.x django postgresql django-rest-framework