def my_func(request: HttpRequest) -> str:
return request.user.email
在 PyCharm 中向我发出警告,指出
user
不是已定义的属性。然而写成
request: HttpRequest()
删除了这个警告,并在建议中给了我正确的参数。有人可以解释为什么会发生这种情况,以及我是否做错了什么?
我正在从
django.http
导入 HttpRequest。
request: HttpRequest()
不是有效的类型提示。相反, request: HttpRequest
会是这样,所以无需创建 HttpRequest
的实例。
.user
是稍后添加到由django.contrib.auth.middleware.AuthenticationMiddleware
添加的请求的对象。因此它不是 HttpRequest
的一部分。
如果启用了中间件,PyCharm 等高级 IDE 将识别出在
request.user
函数中设置了 AuthenticationMiddleware.process_request(self, request)
。