所以我正在为我的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可以完美地运行。
答案 0 :(得分:1)
我有一个理论。这可能是发生的事情:
UITextField
对象,序列化为字符串,而不是它的值。 调试问题:
在django admin中查看该特定用户的username
和password
字段,或者在数据库中查看更好。这将帮助您找到数据库中真正的内容。