2015-06-17 47 views
0

的模型和串行器在引擎收录描述嵌套串行:坚持使用Django的REST框架和默认的用户

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

谢谢Linovia

回答

1

默认DRF会看在User型号的属性上,该型号以串行器' (这里是member)。但是相关的名字是profile

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

+0

非常感谢。对于任何想要澄清的人,在我的嵌套序列化程序中,我必须添加该命令。现在修正它。 – Diesel