【发布时间】:2020-08-14 07:35:45
【问题描述】:
我有一个购物车模型,我希望在 API 中,如果用户在购物车中添加两次相同的商品,购物车将自动增加服务数量。就我而言,如果我两次添加相同的商品,它会创建另一个购物车,而不是更新前一个购物车。我搜索了很多,但我没有得到答案。我尝试了很多来做到这一点。如果有人能够给出答案,请给出答案,请
这是我的代码:-
views.py
class CartViewSet(viewsets.ModelViewSet):
serializer_class = CartSerializer
permission_classes = (IsAuthenticated,)
def get_queryset(self):
user = self.request.user
if user.is_authenticated:
if user is not None:
if user.is_active and user.is_superuser or user.is_Customer:
return Cart.objects.all()
raise PermissionDenied()
raise PermissionDenied()
raise PermissionDenied()
filter_backends = [DjangoFilterBackend]
filterset_fields = ['date_created', 'user']
@action(detail=False)
def count(self, request):
queryset = self.filter_queryset(self.get_queryset())
count = queryset.count()
content = {'count': count}
return Response(content)
serializers.py
class CartSerializer(serializers.ModelSerializer):
class Meta:
model = Cart
fields = ['id','url', 'user', 'service', 'defects', 'date_created', 'quantity' , 'price', 'total']
models.py
class Cart(models.Model):
user = models.ForeignKey('accounts.User', related_name="carts", null=True, on_delete=models.SET_NULL)
quantity = models.IntegerField(default=1)
service = models.ForeignKey('accounts.SubCategory',null=True, on_delete=models.SET_NULL)
defects = models.ForeignKey('Defects',null=True, on_delete=models.SET_NULL)
price = models.IntegerField(default=False)
date_created = models.DateTimeField(auto_now_add=True)
total = models.IntegerField(blank=True, null=True)
def __str__(self):
return self.user.username
【问题讨论】:
-
看不到实际增加数量的代码。可以加一下吗?
-
兄弟,没有代码可以增加数量
-
请给我建议增加数量的代码
标签: python django django-rest-framework django-views django-serializer