Django Rest Framework Serializer返回UItextfield而不是实际值

时间:2015-12-12 19:07:06

标签: python django django-rest-framework

所以我正在为我的API使用Django Rest框架,并且正在尝试为auth用户模型创建API。 这是我的Serializer类

class UserSerializer(serializers.ModelSerializer):
      class Meta:
          model = User
          exclude = ('password',)

我的View类如下

class UserApiDetailView(RetrieveAPIView):
    queryset = User.objects.all()
    serializer_class = UserSerializer

和我的网址相同如下

url(r'^user/(?P<pk>[0-9]+)/$', views.UserApiDetailView.as_view()),

我在调用API时得到以下输出

HTTP/1.0 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Date: Sat, 12 Dec 2015 18:54:04 GMT
Server: WSGIServer/0.1 Python/2.7.10
Vary: Accept, Cookie
X-Frame-Options: SAMEORIGIN
{
    "date_joined": "2015-10-30T06:25:17.400955Z", 
    "email": "<UITextField: 0x7fee18f6fa10", 
    "first_name": "", 
    "groups": [], 
    "id": 2, 
    "is_active": true, 
    "is_staff": false, 
    "is_superuser": false, 
    "last_login": null, 
    "last_name": "", 
    "user_permissions": [], 
    "username": "<UITextField: 0x7fee18f69ad0"
}

我没有获得用户名和电子邮件的实际值,而是获得了UITextField:0x7fee18f69ad0。 我错过了什么吗? 此外,当我使用ListAPIView时,Everything可以完美地运行。

1 个答案:

答案 0 :(得分:1)

我有一个理论。这可能是发生的事情:

  • 您的API正由iOS设备使用。
  • iOS应用程序正在发送UITextField对象,序列化为字符串,而不是它的值。
  • 当您从API查看数据时,您会对数据感到困惑,因为它看起来像某些Python对象的字符串表示。

调试问题:

在django admin中查看该特定用户的usernamepassword字段,或者在数据库中查看更好。这将帮助您找到数据库中真正的内容。