Search code examples
djangorestdjango-rest-frameworkdjango-rest-auth

django rest-auth get user profile


I´m a little bit lost... I´m trying to develop an ionic app witch needs to be authenticated versus Django web application.

I installed Django-Rest-Framework and Django-Rest-Auth. I´m able to login, getin the user with the token, but how can I retrieve more User data?

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

With Django-rest-auth in host.com/rest-auth/user/ url I only have this data:

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
}

But I need more! like id, user_photo, city...

I tried configuring a user serializer like this:

from rest_framework import serializers
from gamer.models import GamerUser

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

and this view:

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

but I´m unable to get user data because I don´t know the user id..

any help or clue???

thanks in advance


Solution

  • You can simply add your custom serializer to your app settings like this:

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

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