在django rest框架中,当任何用户登录并创建订单时,他都可以看到他的订单历史记录,我已经创建了一个视图来执行该任务,但是当前用户看到了coffee_order表上的所有信息。如何从当前用户的其他数据中进行身份验证?
class coffeeorderAPIView(generics.ListAPIView):
queryset = coffee_order.objects.all()
serializer_class = coffeeorderSerializer
我在djangorestframework中尝试过对象级身份验证,但是我是新手,我做不到。请给出解决方案。
答案 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标准。