pyCharm 警告:“WSGIRequest”的未解析属性引用“user”

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

在我全新的 PyCharm 专业版中,我收到警告“‘WSGIRequest’的未解析属性引用‘user’”。警告出现在

MyClass.post()
的第一行(参见下面的代码)。

from django.views import generic
from django.db import models
from django.http.request import HttpRequest
from django.shortcuts import render
from django.contrib.auth.models import AbstractUser


class CustomUser( AbstractUser ):
    emailname = models.CharField()


class Invoice( models.Model ):
    posted = models.DateField()


class BaseView ( generic.DetailView ):

    model = Invoice

    def __int__( self, *args, **kwargs ):
        super().__init__( *args, **kwargs )
        # some more code


class MyClass( BaseView ):

    def __int__( self, *args, **kwargs ):
        super().__init__( *args, **kwargs )
        # some more code

    def post( self, request: HttpRequest, *args, **kwargs ):
        context = { 'curr_user': request.user, } # <-- Unresolved attribute reference 'user' for class 'WSGIRequest'
        # some more code
        html_page = 'mypage.html'
        return render( request, html_page, context )

user
是一个
CustomUser
对象。调试显示,
user
CustomUser
中的已知属性,并且代码运行良好,
context
中的“curr_user”是预期的属性。
request
的其他属性(如
request.path
request.REQUEST
)不会被警告。 Django 支持已启用。

我使用 PyCharm 2023.2.5(专业版),Windows 11

有人可以帮忙吗?我的错误是什么?

问候

python django pycharm
1个回答
0
投票

request.user
不一定适用于所有请求(这取决于您是否有一个注入它的中间件),因此它并不显示为必然存在。

如果你需要的话,你当然可以添加一个

class HttpRequestWithUser(HttpRequest):
    user: CustomUser

用于类型注释的类。

© www.soinside.com 2019 - 2024. All rights reserved.