django rest-auth获取用户个人资料

时间:2015-11-01 16:37:53

标签: django rest django-rest-framework django-rest-auth

我有点迷失了......我正在尝试开发一个离子应用程序,需要对Django Web应用程序进行身份验证。

我安装了Django-Rest-Framework和Django-Rest-Auth。我能够登录,使用令牌获取用户,但我如何检索更多用户数据?

url(r'^rest-auth/', include('rest_auth.urls')),
url(r'^rest-token-auth/$',obtain_auth_token),

在host.com/rest-auth/user/ url中使用Django-rest-auth我只有这些数据:

HTTP 200 OK
Content-Type: application/json
Vary: Accept
Allow: GET, PUT, HEAD, OPTIONS, PATCH

{
    "username": "ikerib",
    "email": "ikerib@gmail.com",
    "first_name": null,
    "last_name": null
}

但我需要更多!比如id,user_photo,city ...

我尝试像这样配置用户序列化程序:

from rest_framework import serializers
from gamer.models import GamerUser

class GameUserSerializer(serializers.ModelSerializer):
    class Meta:
        model = GamerUser
        fields = ('id', 'fullname', 'get_photo', 'karma')

和这个观点:

@csrf_exempt
def gameuser_detail(request, pk):
    try:
        gameuser = GameUser.objects.get(pk=pk)
    except GameUser.DoesNotExist:
        return HttpResponse(status=404)

    if request.method == 'GET':
        serializer = GameUserSerializer(gameuser)
        return JSONResponse(serializer.data)

但我无法获取用户数据,因为我不知道用户ID ..

任何帮助或线索???

提前致谢

1 个答案:

答案 0 :(得分:6)

您只需将自定义序列化程序添加到您的应用设置中,如下所示:

REST_AUTH_SERIALIZERS = {
    'USER_DETAILS_SERIALIZER': 'path.to.custom.GameUserSerializer',
}

http://django-rest-auth.readthedocs.org/en/latest/configuration.html