小编Cha*_*han的帖子

__init__() 缺少 1 个必需的位置参数:'model_field'

我正在尝试使用嵌套序列化器,如果我从序列化器 A 中删除“product=ProductSerializer()”,代码将成功运行,否则会出现以下错误。

为什么 SizeSerializer 可以工作,但 Productserializer 却不能。

型号A

class SKU(models.Model):
    size = models.ForeignKey(Size,on_delete=models.CASCADE)
    product = models.ForeignKey(Product,on_delete=models.CASCADE)

    number = models.CharField(max_length=100,null=True,blank=True)
    price = models.IntegerField(null=True,blank=True)
    parent_sku = models.CharField(max_length=100,null=True,blank=True)
    active = models.BooleanField(default=True)
Run Code Online (Sandbox Code Playgroud)

B型

class Product(models.Model):      
    name = models.CharField(max_length=200,null=True,blank=True)
    active = models.BooleanField(default=True)
Run Code Online (Sandbox Code Playgroud)

串行器A

class SKU_Serializer(serializers.ModelSerializer):
    size    = SizeSerializer()
    product = ProductSerializer()

    class Meta:
        model = SKU
        exclude = ('created_at','updated_at')
Run Code Online (Sandbox Code Playgroud)

串行器B

class ProductSerializer(serializers.ModelField):

    class Meta:
        model = Product
        exclude = ('created_at','updated_at')
Run Code Online (Sandbox Code Playgroud)

json

{
        "id": 1,
        "size": {
            "id": 1,
            "name": "XL",
            "active": true
        },
        "number": …
Run Code Online (Sandbox Code Playgroud)

django django-serializer django-rest-framework

3
推荐指数
1
解决办法
1971
查看次数