0

Pythonの残りのAPIアプリケーションでは、django oauth2ツールキットが正常に組み込まれており、ログイン中にアクセス権が取得されています。現在ログインしているユーザーとそのグループ情報とグループのアクセス許可。残りのapiでログインしたユーザーの詳細とグループパーミッションを取得する

私urls.py

url(r'me', get_me), 

マイserialzers.py

class UserGroupSerializer(serializers.ModelSerializer): 
    permissions = serializers.SerializerMethodField(required=False) 
    groups = serializers.SerializerMethodField(required=False) 

    def get_groups(self, obj): 
     group_list = [] 
     for group in obj.groups.all(): 
      group_list.append(group.name) 
     return group_list 


    def get_permissions(self, obj): 
     permissions = [] 
     for group in obj.groups.all(): 
      group_permissions = group.permissions.all().values_list('codename', flat=True) 
      for group_permission in group_permissions: 
       permissions.append(group_permission) 
     return permissions 

    class Meta: 
     model = get_user_model() 
     exclude = ('password','user_permissions',) 
     #fields = '__all__' 

私のviews.py

def get_me(request): 
    user = request.user 
    return { 
     'user': UserGroupSerializer(user).data, 
    } 

私はこのAPIを呼び出すと、私は次のエラーを取得しています、

ビューaccount.views.get_meはHttpResponseオブジェクトを返しませんでした。代わりに、 がNoneを返しました。

問題点は何ですか?それは正しい方法は次のですか?

答えて

1

あなたのget_me機能の値をHttpResponseまたは別の応答関数で返す必要があります。これを行うための

DRF方法:作業

from rest_framework.response import Response 
from rest_framework import status 
from rest_framework.decorators import api_view 

@api_view(['GET']) 
def my_funct(request): 
     user = request.user 
     return Response({'user': UserGroupSerializer(user).data}, status=status.HTTP_200_OK) 
+0

厥ありません。このエラーを示しています アサーションエラー/ api/v1/me レスポンスでaccept.receptere_rendererが設定されていません –

+0

回答を編集しました。これはうまくいくはずです。 –

+0

はい。出来た。ありがとう。 ユーザーの詳細と権限を取得する最善の方法はありますか? –

関連する問題