request.user返回抽象用户(django-stubs)

问题描述 投票: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个回答
1
投票

这里有一个关于这个错误的公开问题 https:/github.comtypeddjangodjango-stubsissues309。

根据django-stubs的文档,当使用自定义用户模型时,你必须提供自己的请求类型。在PyPi的页面底部,你可以看到 如何使用HttpRequest与自定义用户模型?

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.