如何向当前用户隐藏其他数据

时间:2019-01-23 14:29:55

标签: python django django-rest-framework

在django rest框架中,当任何用户登录并创建订单时,他都可以看到他的订单历史记录,我已经创建了一个视图来执行该任务,但是当前用户看到了coffee_order表上的所有信息。如何从当前用户的其他数据中进行身份验证?

class coffeeorderAPIView(generics.ListAPIView):
    queryset = coffee_order.objects.all()
    serializer_class = coffeeorderSerializer

我在djangorestframework中尝试过对象级身份验证,但是我是新手,我做不到。请给出解决方案。

1 个答案:

答案 0 :(得分:3)

您需要将查询集限制为用户的咖啡订单。

class CoffeeOrderAPIView(generics.ListAPIView):
    queryset = CoffeeOrder.objects.all()
    serializer_class = CoffeeOrderSerializer

    def get_queryset(self):
        queryset = super().get_queryset()
        # I'm not sure what the FK to user is on CoffeeOrder. I assumed customer.
        queryset = queryset.filter(customer=self.request.user)
        return queryset

我也将类更改为驼峰式,这是python标准。