【发布时间】:2021-05-11 18:06:39
【问题描述】:
我正在使用 django 构建 API,但遇到了一个问题。
我有一个 UserDetail 模型,它有一个用户模型的外键。
class UserDetail(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
about = models.CharField(max_length=200, default="", blank=True)
我想在一个json中序列化User的信息和UserDetails的信息,这就是我目前正在做的:
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ('username', 'first_name', 'last_name', 'email')
class DetailSerializer(serializers.ModelSerializer):
user = UserSerializer(required=True)
class Meta:
model = UserDetail
fields = ('user', 'about',)
现在我得到了这个:
{
"user": {
"username": "julia",
"first_name": "antonia",
"last_name": "uri",
"email": "as¡¡test@test.test"
},
"about": ""
}
但我想从用户那里获取 UserDetail 的信息,而不是反过来(就像我现在正在做的那样),以便我得到这样的信息:
{
"username": "julia",
"first_name": "antonia",
"last_name": "uri",
"email": "test@test.test",
"details": {
"about": ""
}
}
如果有人能告诉我我做错了什么,我将不胜感激。
谢谢!
编辑
这是我的看法:
#user = User.objects.select_related('userdetail').get(username=username)
user = User.objects.get(username=username)
userDetail = UserDetail.objects.get(user=user)
if request.method == 'GET':
serializer = DetailSerializer(userDetail)
return Response(serializer.data)
【问题讨论】:
-
请添加您的观点
标签: python django django-models django-serializer