我的用户配置文件视图
@api_view(['GET'])
@permission_classes((IsAuthenticated, ))
def user_profile(request,id):
try:
up = get_object_or_404(User_Profile, pk=id)
except User_Profile.DoesNotExist:
return Response(status=status.HTTP_404_NOT_FOUND)
if request.method == 'GET':
account=request.user
post=Post.objects.all().filter(author=account)
post_serializer=PostSerializer(post)
follower_serializer = FollowerSerializer(up)
following_serializer = FollowingSerializer(account)
serializer=[follower_serializer.data,following_serializer.data,post_serializer.data]
content = {
'status': 1,
'responseCode' : status.HTTP_200_OK,
'data': serializer,
}
return Response(content)
当我运行这个时,它说:
"QuerySet"对象没有属性"作者">
但是当我在 shell 中运行而不使用序列化程序时,只需使用此代码post=Post.objects.all().filter(author=account)
它向我显示了与用户相关的帖子。那么我的序列化程序有什么问题?
在您的情况下,post
是一个QuerySet,因此您应该使用many=True
初始化序列化程序
post_serializer=PostSerializer(post,many=True)