python - Django:列出序列化程序
问题描述
我想用 Django 创建rest API。我听说过 Django Rest Framework 中的序列化程序:from rest_framework import serializers
. 接下来,我必须创建某种模型。我想创建这种类型的 JSON 响应:
{
id: "489",
state: "PREPARATION",
orderDay: "2020-06-24",
deliveryDay: "2020-06-30",
deliveryAddress: "Place des Fêtes",
comment: "", // facultatif
products: [
{
id: "420",
name: "Côte de boeuf",
price: "28.90",
oldPrice: "", // facultatif
unit: "KG",
categoryId: "69666",
byProducts: [
{
id: "420161",
name: "unité",
quantity: 42,
},
],
},
],
}
所以我必须在我的序列化程序模型(products,byProduct)中添加一个列表。我可以用序列化器来做到这一点吗?如何?提前致谢
解决方案
你可以通过实现这样的东西来实现这样的数据结构:
from rest_framework import serializers
class ByProductSerializer(serializers.Serializer):
id = serializers.IntegerField()
name = serializers.CharField()
quantity = serializers.IntegerField()
class ProductSerializer(serializers.Serializer):
id = serializers.IntegerField()
name = serializers.CharField()
price = serializers.DecimalField(decimal_places=2, max_digits=5)
oldPrice = serializers.DecimalField(decimal_places=2, max_digits=5)
unit = serializers.CharField()
categoryId = serializers.IntegerField()
byProducts = ByProductSerializer(many=True)
class MainSerializer(serializers.Serializer):
id = serializers.IntegerField()
state = serializers.CharField()
orderDay = serializers.DateField()
deliveryDay = serializers.DateField()
deliveryAddress = serializers.DateField()
comment = serializers.DateField()
products = ProductSerializer(many=True)
推荐阅读
- mongodb - 插入文档时自动包含日期字段
- xml - 如何找出导致“无法解析符号'ActivityMainBindingImpl'”的原因
- python - 如何从测试脚本中运行 WAF 编译的 C++ 程序?
- javascript - 带有字符串格式变量的正则表达式
- pandas - 如何通过检查值是否等于模式来创建二进制熊猫数据框
- python - 此错误的原因是什么,我该如何解决?
- godot - 如何在运行时更改 CollisionShape (3D) 的大小和形状?
- python - Cumsum 重启
- objective-c - 将数据从集合视图传递到表视图
- web - RuntimeError:在请求上下文之外工作。在烧瓶错误