0

Я знаю, что на этот вопрос был дан ответ, но ответ не охватывал мое замешательство.Django Rest Framework token auth

Так что есть мнение, что проверяет, является ли пользователь правильно с именем пользователя и паролем

@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 api вернуть данные для , чтобы пользователь, а не возвращал данные для всех пользователей.

ответ

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, чтобы разрешить доступ к объектам только пользователя.

Смежные вопросы