__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
.
我正在尝试使用嵌套序列化程序,如果我从序列化程序 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
.