如何从Django rest API中的ModelViewSet类获取请求的用户名?

时间:2016-07-18 03:35:57

标签: python django api rest django-rest-framework

我有以下代码。 它允许使用Django中的Rest API上传图像。 但是由于这个课程的性质,我无法以通常的方式获得用户(request.user)

view.py

class PhotoViewSet(viewsets.ModelViewSet, APIView):
    permission_classes = (permissions.IsAuthenticated,)

    queryset = Photo.objects.all()  
    serializer_class = PhotoSerializer

    @receiver(post_save, sender=Photo)
    def my_handler(sender, instance, **kwargs):
        print request.user.username #How to make this work?

url.py

router = routers.SimpleRouter()
router.register(r'avatar', PhotoViewSet, base_name='love_stackoverflow')

1 个答案:

答案 0 :(得分:1)

如果您要将用户添加到Photo实例,请使用PhotoSerializer中的CurrentUserDefault(作为只读字段)或视图中的pass the user to the serializer's save perform_create