Cha*_*han 3 django django-serializer django-rest-framework
我正在尝试使用嵌套序列化器,如果我从序列化器 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": "Muriel Treppas",
"price": 899,
"parent_sku": "Muriel",
"active": true,
"product": 1
},
Run Code Online (Sandbox Code Playgroud)
输出(错误)
File "D:\1___DEVELOPMENT\Clothing\hoplet\sku\views.py", line 6, in <module>
from sku.serializers import SKU_Serializer
File "D:\1___DEVELOPMENT\Clothing\hoplet\sku\serializers.py", line 8, in <module>
class SKU_Serializer(serializers.ModelSerializer):
File "D:\1___DEVELOPMENT\Clothing\hoplet\sku\serializers.py", line 10, in SKU_Serializer
product = ProductSerializer()
TypeError: __init__() missing 1 required positional argument: 'model_field'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1971 次 |
| 最近记录: |