小编Wou*_*ens的帖子

Django Rest Framework - 创建和更新父子关系

我正在尝试使用 Django Rest Framework 序列化程序为我的前端创建 API,以在商店中创建/更新和删除文章。这些文章可以有多个价格(取决于时间)。因此,商品(一)与价格(多)之间存在一对多关系。我已在中定义了这一点models.py

\n\n
class Article(models.Model):\n    article_id = models.AutoField(primary_key=True, verbose_name="Article ID")\n    article_name = models.CharField(max_length=250, verbose_name="Name")\n    article_order = models.IntegerField(verbose_name="Order")\n\nclass Price(models.Model):\n    price_id = models.AutoField(primary_key=True, verbose_name="Price ID")\n    article_id = models.ForeignKey(Article, on_delete=models.CASCADE, verbose_name="Article ID", related_name="Prices")\n    price_price = models.DecimalField(max_digits=6, decimal_places=2, verbose_name="Price")\n
Run Code Online (Sandbox Code Playgroud)\n\n

我的serializers.py 文件如下所示:

\n\n
from rest_framework import serializers\nfrom .models import *\n\nclass PriceSerializer(serializers.ModelSerializer):\n\n    class Meta:\n        model = Price\n        fields = (\'price_price\',)\n\nclass ArticleSerializer(serializers.ModelSerializer):\n\n    Prices = PriceSerializer(many=True)\n\n    def create(self, validated_data):\n        prices_data = validated_data.pop(\'Prices\')\n        article = Article.objects.create(**validated_data)\n        for price_data in prices_data:\n            Price.objects.create(article_id=article, **price_data)\n …
Run Code Online (Sandbox Code Playgroud)

python django django-serializer django-rest-framework

6
推荐指数
1
解决办法
4750
查看次数