问题描述
我在 UpdateAPIView 中导入了 DestroyModelMixin,这样我就可以在同一个 API 端点中同时使用 PUT 和 DELETE 方法。它适用于 PUT 并且可以更新,但是当我在 postman 中调用 DELETE 时,它说 DELETE 是不允许的。
但是,当我只使用 DestroyAPIView 创建一个单独的视图时,它工作正常。我想要一个用于更新和删除的 API。
我的模型:
class CartItem(models.Model):
cart = models.ForeignKey(Cart,on_delete=models.CASCADE,related_name='cartitems')
item = models.ForeignKey(Product,on_delete=models.CASCADE)
quantity = models.IntegerField()
def __str__(self):
return self.item.name
我的观点:
class CartItemUpdateAPIView(UpdateAPIView,mixins.DestroyModelMixin):
permission_classes = [IsAuthenticated]
queryset = CartItem.objects.all()
serializer_class = CartItemSerializer
def perform_update(self,serializer):
serializer.save()
def perform_destroy(self,instance):
instance.delete()
我的序列化器:
class CartItemSerializer(serializers.ModelSerializer):
class Meta:
model = CartItem
fields = ['id','cart','item','quantity']
depth = 1
我的网址:
path('api/cartitemupdate/<int:pk>',views.CartItemUpdateAPIView.as_view(),name='api-cartitem-update'),
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)