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


模型

和序列化程序在 pastebin 中描述:

http://pastebin.com/ZxzxWY7V

在我的数据库中,我有一个用户,该用户还附加了一个成员配置文件和一组凭据。

现在。。。当我按原样运行并尝试使用AuthUserModelSerializer拉取用户时,我获得了成员和凭据,但MemberProfile没有传递! 我不知道为什么。 我不确定是因为 MemberProfile 是 1 对 1 的关系(尝试将其更改为外键进行测试),还是我的模型/序列化程序有问题。 下面是来自 API 的示例响应:

HTTP 200 OK
Vary: Accept
Allow: GET, PUT, PATCH, DELETE, HEAD, OPTIONS
Content-Type: application/json
{
    "id": 1,
    "username": "eric",
    "password": "pbkdf2_sha256$20000$xA5jPJVAByjo$i/FpmosJgsppVH4o5ctryDppOyG1ZaB+tQ2VIa+jFX0=",
    "email": "",
    "first_name": "",
    "last_name": "",
    "is_staff": true,
    "is_active": true,
    "date_joined": "2015-06-17T00:10:24.514894Z",
    "credentials": [
        {
            "credential_type": "O",
            "credential_number": "23423423",
            "date_received": "2015-06-17T00:27:49.367446Z",
            "is_verified": true,
            "date_verified": "2015-06-17T00:27:46Z",
            "document_image": "http://127.0.0.1:8000/api/v1/members/images/credentials/e990868659524470aadb9996c68384ba.ext/logo11w.png"
        }
    ]
}

编辑:修复是要改变

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')

谢谢利诺维亚

默认情况下,

DRF 将查看User模型上以序列化程序字段命名的属性(此处member)。但是,相关名称是 profile

这可以通过将source="profile"传递给您的MemberProfileSerializer来解决。

相关内容

  • 没有找到相关文章

最新更新