0

我知道這個問題已經回答過,但答案並沒有涵蓋我的困惑。Django Rest Framework令牌驗證

所以我有一個檢查,如果用戶使用用戶名正確的景色,並受密碼

@api_view(['POST']) 
def example_view(request, format=None): 
    username = request.data.get("username") 
    password = request.data.get("password") 
    content = {} 
    try: 
    user = User.objects.get(username=username) 
    if user.check_password(password): 
     content = {'user': unicode(user.username),'token': unicode(user.auth_token),} 
    else: 
     content = {'wrong password'} 
    except User.DoesNotExist: 
    content = { 
     'not registered', 
     } 
    return Response(content) 

我發表的帖子請求並返回令牌,如果用戶名和密碼是正確的。

現在,我做了一個模型 -

class Check(models.Model): 
    owner = models.ForeignKey(User,verbose_name = 'UserName') 
    mood = models.TextField(null=True) 

而且我有同樣的模型 -

@api_view(['GET']) 
def CheckApi(request): 
    authentication_classes = (TokenAuthentication,) 
    permission_classes = (IsAuthenticated,) 

    ?? query_set = Check.objects.get(owner= 

    serializer = CheckSerializer(qs, many=True) 
    return Response(serializer.data) 

和串的IT-

class CheckSerializer(serializers.ModelSerializer): 
class Meta: 
    model = Check 
    fields = ('__all__') 

我基本上想要什麼功能要做的是在用戶已經認證後,我wan t返回的數據爲,即用戶,而不是爲所有用戶返回數據。

回答

0

請求對象將包含用戶(request.user)。

http://www.django-rest-framework.org/api-guide/views/#api-policy-decorators

@api_view(['GET']) 
@authentication_classes(TokenAuthentication,) 
@permissions_classes(IsAuthenticated,) 
def CheckApi(request): 
    authentication_classes = (TokenAuthentication,) 
    permission_classes = (IsAuthenticated,) 

    query_set = Check.objects.get(owner=request.user) 

    serializer = CheckSerializer(qs, many=True) 
    return Response(serializer.data) 

如果您打算使用類viewsets,超載get_queryset以只允許訪問用戶的對象。