Модель представления Python Django - Получить текущий идентификатор пользователя - PullRequest
0 голосов
/ 03 мая 2018

Я хочу получить текущий идентификатор пользователя для передачи

class document_typeViewSet(viewsets.ModelViewSet):
   user = User.objects.get(id=request.user.id)
   group = user.group.get()
   queryset = document_type.objects.filter(role_id=group)
   serializer_class = document_typeSerializer

Я получаю сообщение об ошибке AttributeError: module 'request' has no attribute 'user' "

Ответы [ 2 ]

0 голосов
/ 03 мая 2018

Если вам нужно USER экземпляр при creation (создание нового экземпляра), то есть вы должны переопределить create(), как показано ниже,

class document_typeViewSet(viewsets.ModelViewSet):
    queryset = document_type.objects.filter(role_id=group)
    serializer_class = document_typeSerializer

    def get_user(self, request):
        return request.user

    def create(self, request, *args, **kwargs):
        # create new "document_type" instance
        current_user = request.user
        # do something with "current_user"
        return super().create(request, *args, **kwargs)


Точно так же вы можете получить доступ к logged-in пользователю в своем CBV, если у вас есть Действительный request объект

0 голосов
/ 03 мая 2018

обновить код:

class document_typeViewSet(viewsets.ModelViewSet):
    def function_name(self, request):
        user = User.objects.get(id=request.user.id)
        group = user.group.get()
        queryset = document_type.objects.filter(role_id=group)
        serializer_class = document_typeSerializer

Тогда вы получите request.user.id.

...