使用Django Rest Framework和默认用户使用嵌套的序列化程序

时间:2015-06-17 00:29:57

标签: django api rest django-rest-framework serializer

模型和序列化器在pastebin中描述:

http://pastebin.com/ZxzxWY7V

在我的数据库中,我有一个用户,该用户还有一个成员个人资料和一组附加的凭据。

现在......当我按原样运行并尝试使用AuthUserModelSerializer拉取用户时,我获得了成员和凭据,但是MemberProfile没有通过!我无法弄清楚为什么。我不确定是不是因为MemberProfile是一对一关系(尝试将其更改为要测试的外键),或者我的模型/序列化程序有问题。以下是API的示例回复:

class AuthUserModelSerializer(serializers.ModelSerializer):
    credentials = CredentialSerializer(many=True)
    member = MemberProfileSerializer(read_only=True)

编辑: 修复是改变

class AuthUserModelSerializer(serializers.ModelSerializer):
    credentials = CredentialSerializer(many=True)
    member = MemberProfileSerializer(read_only=True, source='profile')

{{1}}

谢谢Linovia

1 个答案:

答案 0 :(得分:1)

默认情况下,DRF会查看以序列化程序字段命名的User模型上的属性(此处为member)。但相关名称为profile

这可以通过将source="profile"传递到您的MemberProfileSerializer

来解决