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

__init__() missing 1 required positional argument: '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)

型号B

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

序列化器 A

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

    class Meta:
        model = SKU
        exclude = ('created_at','updated_at')

序列化器 B

class ProductSerializer(serializers.ModelField):

    class Meta:
        model = Product
        exclude = ('created_at','updated_at')

json

{
        "id": 1,
        "size": {
            "id": 1,
            "name": "XL",
            "active": true
        },
        "number": "Muriel Treppas",
        "price": 899,
        "parent_sku": "Muriel",
        "active": true,
        "product": 1
    },

输出(错误)

  File "D:___DEVELOPMENT\Clothing\hoplet\sku\views.py", line 6, in <module>
    from sku.serializers import SKU_Serializer
  File "D:___DEVELOPMENT\Clothing\hoplet\sku\serializers.py", line 8, in <module>
    class SKU_Serializer(serializers.ModelSerializer):
  File "D:___DEVELOPMENT\Clothing\hoplet\sku\serializers.py", line 10, in SKU_Serializer
    product = ProductSerializer()
TypeError: __init__() missing 1 required positional argument: 'model_field'

ProductSerializer 继承自 serializers.ModelField 而不是 serializers.ModelSerializer.