我想在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(....)
1条答案
按热度按时间9vw9lbht1#
在您希望用户添加/更新购物车而不进行日志记录的场景中:
解决方案1:您必须在客户端实现相同的功能,即如果您的客户端通过Web浏览器进行交互,您可以使用本地/会话存储。稍后当用户登录时,您可以将所有信息保存在数据库中。