小编JWi*_*ert的帖子

如何在Django中删除具有ManyToMany关系的对应行?

我正在尝试制作一个带有两个 API、配料和披萨的基本披萨应用程序。当我删除配料时,我希望相应的披萨也被删除,因为配料不再可用。就目前而言,当我删除配料时,它只会保留一个空的披萨对象。

楷模:

class Toppings(models.Model):
    name = models.CharField(max_length=60, unique=True)

    def __str__(self):
        return self.name


class Pizza(models.Model):
    name = models.CharField(max_length=60, unique=True)
    topping = models.ManyToManyField(Toppings, max_length=60, related_name="toppings")

    def __str__(self):
        return (self.name, self.topping)
Run Code Online (Sandbox Code Playgroud)

序列化器:

class PizzaSerializer(serializers.ModelSerializer):
    toppings = ToppingsSerializer(read_only=True, many=True)

    class Meta:
        model = Pizza
        fields = "__all__"
class ToppingsSerializer(serializers.ModelSerializer):

    class Meta:
        model = Toppings
        fields = "__all__"
Run Code Online (Sandbox Code Playgroud)

Pizza.views 和 Toppings.views 几乎相同,所以我只包含 Pizza。

class PizzaList(generics.ListAPIView):
    queryset = Pizza.objects.all()
    serializer_class = PizzaSerializer


class PizzaCreate(generics.CreateAPIView):
    queryset = Pizza.objects.all()
    serializer_class = PizzaSerializer


class PizzaUpdate(generics.UpdateAPIView):
    queryset = Pizza.objects.all() …
Run Code Online (Sandbox Code Playgroud)

python django django-models django-views django-rest-framework

0
推荐指数
1
解决办法
178
查看次数