request.user返回抽象用户

问题描述 投票:0回答:1

我正在尝试输入以下内容:

user: Final[CustomUser] = self.request.user

CustomUser是我在settings.py中定义的自定义用户模型。我的IDE抱怨Expected type 'CustomUser', got 'AbstractBaseUser' instead。查看文档,它说self.request.user返回AUTH_USER_MODEL的实例,但是显然这没有发生。

也尝试过:

 def get(self, request: MyRequest, *args, **kwargs) -> HttpResponse:
    user: Final[CustomUser] = self.request.user

哪里

from django.http import HttpRequest
from my_user_app.models import CustomUser

class MyRequest(HttpRequest):
    user: CustomUser
python django typing
1个回答
0
投票

根据django-stub的文档,使用自定义用户模型时,您必须提供自己的请求类型。在页面底部的PyPi How can I use HttpRequest with custom user model?

from django.http import HttpRequest
from my_user_app.models import CustomUser

class MyRequest(HttpRequest):
    user: CustomUser

然后您将不得不使用它来注释self.request

 def get(self, request: MyRequest, *args, **kwargs) -> HttpResponse:
    user: Final[CustomUser] = request.user
© www.soinside.com 2019 - 2024. All rights reserved.