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

jecbmhm3  于 12个月前  发布在  PyCharm
关注(0)|答案(1)|浏览(304)

在我全新的PyCharm专业版中,我得到了警告“Unresolved attribute reference 'user' for 'WSGIRequest'"。该警告出现在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对象。测试表明,userCustomUser中的已知属性,代码运行良好,context中的'Curr_user'是预期的属性。request的其他属性,如request.pathrequest.REQUEST不会被警告。Django支持已启用。
我使用PyCharm 2023.2.5(专业版),Windows 11
有人能帮忙吗?我错在哪里?
问候

n3h0vuf2

n3h0vuf21#

request.user并不一定适用于所有请求(这取决于您是否有中间件注入它),因此它不一定存在。
如果你需要的话,你当然可以添加一个

class HttpRequestWithUser(HttpRequest):
    user: CustomUser

字符串
用于类型注解的类。

相关问题