在Django Rest框架中创建购物车

4si2a6ki  于 2022-12-20  发布在  Go
关注(0)|答案(1)|浏览(102)

我想在Django Rest Framework中实现购物车。我将购物车的信息存储在模型中。我不想使用会话来实现这个功能,我想将它保存在数据库中。用户必须登录才能创建产品并将其添加到购物车中。但我希望用户能够在不登录网站的情况下将产品添加到购物车中。(访客用户购物车的实现)如果您能指导我,我将非常感激。谢谢

My Model :

class Cart(models.Model):
    product = models.ForeignKey(Product, on_delete=models.CASCADE)
    user = models.ForeignKey(User, on_delete=models.CASCADE)    
    quantity = models.PositiveIntegerField()

 My View:        

  

class AddToCartApi(APIView):
    serializer_class = AddToCartSerializer
    permission_classes = [IsAuthenticated]

    def post(self, request):
        serializer = self.serializer_class(data=request.data)
        serializer.is_valid(raise_exception=True)

        user_id = request.user.id
        data = serializer.validated_data
        
        Cart.objects.create(
            user_id=user_id,
            product_id=data['product_id'],
            quantity=data['quantity'],                
        )
        return Response(....)
9vw9lbht

9vw9lbht1#

在您希望用户添加/更新购物车而不进行日志记录的场景中:
解决方案1:您必须在客户端实现相同的功能,即如果您的客户端通过Web浏览器进行交互,您可以使用本地/会话存储。稍后当用户登录时,您可以将所有信息保存在数据库中。

相关问题