0

Ich weiß, dass diese Frage bereits beantwortet wurde, aber die Antwort hat meine Verwirrung nicht abgedeckt.Django Rest Framework Token Auth

So habe ich eine Ansicht, die, wenn der Benutzer mit dem Benutzernamen korrekt überprüft und kennwort

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

ich eine Post-Anforderung machen und das Token zurück, wenn der Benutzername und das Kennwort richtig ist.

Jetzt habe ich einen modell-

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

Und ich habe eine Funktion für die gleiche modell-

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

Und Serializer für it-

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

Was im Grunde möchte ich zu tun ist, nachdem ein Benutzer wurde authentifiziert, ich wan t die API, um Daten für , die Benutzer zurückgeben, anstatt Daten für alle Benutzer zurückgeben.

Antwort

0

Anforderungsobjekt enthält den Benutzer (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) 

Wenn Sie planen, um die Klasse Viewsets zu verwenden, um Überlastung get_queryset nur Zugriff auf Objekte des Benutzers zu ermöglichen.

Verwandte Themen