diff --git a/store/serializers.py b/store/serializers.py index 4b283b0..ee57ca5 100644 --- a/store/serializers.py +++ b/store/serializers.py @@ -188,4 +188,4 @@ class PromocodeSerializer(serializers.ModelSerializer): class Meta: model = Promocode - fields = ('id', 'name', 'discount', 'freedelivery', 'nocomission') + fields = ('id', 'name', 'discount', 'freedelivery', 'nocomission', 'is_active') diff --git a/store/views.py b/store/views.py index ee36579..1c65bbd 100644 --- a/store/views.py +++ b/store/views.py @@ -109,8 +109,7 @@ class YuanRateAPI(generics.GenericAPIView): yuan_rate = GlobalSettings.load().yuan_rate return Response(data={'currency': yuan_rate}) - # FIXME: use PATCH method for updates - def post(self, request, *args, **kwargs): + def patch(self, request, *args, **kwargs): data = json.loads(request.body) instance = self.get_object() @@ -234,8 +233,9 @@ class PromoCodeAPI(mixins.CreateModelMixin, generics.GenericAPIView): if 'name' not in data: raise CRMException('name is required') - instance = get_object_or_404(self.get_queryset(), name=data['name']) - instance.delete() + instance: Promocode = get_object_or_404(self.get_queryset(), name=data['name']) + instance.is_active = False + instance.save() return Response(status=status.HTTP_204_NO_CONTENT)