在Django Rest中,我有一个名为User
的模型,它被用作AUTH_USER_MODEL
。为了扩展此模型并使用附加信息分离身份验证相关字段,我创建了另一个名为Profile
的模型。Profile
包含不相关的数据,如age
、height
、country
、zip_code
等。这两个模型有一一对应的关系。我需要一个特殊的端点,只有管理员访问,并用于创建一个用户及其配置文件在一个请求中使用。为此,我需要一个像这样的扁平serailizer:
{
"username": "something",
"password": "1234",
"email": "[email protected]",
"age": 43,
"country": "USA"
}
我尝试创建一个继承serailizers.Serializer
的类并手动创建字段,但这似乎非常不工程化。还可以想象一下,如果稍后我向这些模型中添加新字段会发生什么。
另外,我可以在UserSerializer
中包含ProfileSerializer
,我会有:
{
"username": "something",
"password": "1234",
"email": "[email protected]",
"profile": {
"country": "USA",
// and rest of fields
}
}
但这个例子不是我需要的。
我需要一个flat序列化器,它将两个(甚至更多)具有一对一关系的模型组合在一起。序列化器必须包含这两个模型的所有必需字段。我该怎么办?
1条答案
按热度按时间zujrkrfu1#
您必须在序列化程序中为相关模型指定字段。
您的配置文件类可能如下(最标准的方式):
下面的序列化器给你一个扁平的json: