简体   繁体   English

FOREIGN KEY 约束失败 - Django

[英]FOREIGN KEY constraint failed - Django

So I'm trying to make a delete route for my API but I'm encountering a problem.所以我试图为我的 API 创建一条删除路线,但我遇到了一个问题。 Whenever I hit the delete route I get an error which is django.db.utils.IntegrityError: FOREIGN KEY constraint failed .每当我点击删除路线时,我都会收到一个错误django.db.utils.IntegrityError: FOREIGN KEY constraint failed I'm trying to delete a model if the delete route is hit.如果删除路线被击中,我正在尝试删除 model 。 I have done makemigrations and migrate but there were no changes.我已经完成了makemigrationsmigrate但没有任何变化。 Example of my code is like this:我的代码示例如下:

class RandomAPIView(APIView):
    def delete(self, request, id, format=None):
        product = Product.objects.get(pk=id)
        product.delete()
        return Response({'Success':'Product has been deleted'})

product in models.py models.py 中的产品

class Product(models.Model):
    name = models.CharField(max_length=200)
    category = models.ForeignKey(Category, on_delete=models.CASCADE, blank=True, null=True)

    def __str__(self):
        return self.name

You should be using django-rest-framework's serializers and viewsets to achieve this.您应该使用 django-rest-framework 的序列化程序和视图集来实现这一点。 ( RTFM ) 实时调频


## serializers.py

from rest_framework import serializers

class ProductSerializer(serializers.ModelSerializer):
    class Meta:
        model = Product
        fields = "__all__"

## views.py
from rest_framework import viewsets, mixins

# below subclassing is done to only allow deletion, 
# u can also use `viewsets.ModelViewSet` to allow all operations
# such as `list`, `create`, etc.
class ProductViewSet(viewsets.GenericAPIView, mixins.DestroyModelMixin):
    queryset = Product.objects.all()
    serializer_class = ProductSerializer

Reference to DRF's docs. 参考 DRF 的文档。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM