2

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

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
4

1 回答 1

2

这里有一个关于此错误的未解决问题https://github.com/typeddjango/django-stubs/issues/309

根据 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
于 2020-05-10T17:54:30.373 回答