我知道这个问题之前已经得到了回答,但答案并没有解决我的困惑。
所以我有一个视图,用户名和密码检查用户是否正确 -
@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)
和它的序列化器 -
class CheckSerializer(serializers.ModelSerializer):
class Meta:
model = Check
fields = ('__all__')
我基本上想要做的是在用户进行身份验证之后,我希望api返回那个用户的数据,而不是为所有用户返回数据
答案 0 :(得分: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)
如果您打算使用类视图集,请重载get_queryset以仅允许访问用户的对象。