如何解决PyCharm中Django自定义User模型的未解析属性引用警告
解决PyCharm中自定义Django User模型的未解析属性警告
不用完全忽略警告,试试这几个实用的解决办法:
给request.user添加类型注解
直接在视图里明确指定request.user的类型为你的自定义User模型,PyCharm就能精准识别属性了:from user.models import User class YourView(View): def get(self, request): user: User = request.user if user.type == 'foo': # 你的业务逻辑手动配置PyCharm的Django用户模型
打开PyCharm设置(File > Settings),依次进入Languages & Frameworks > Django,在User model输入框里手动填入自定义User模型路径(比如user.User),替换自动检测的默认值。保存后PyCharm会优先识别你的自定义模型。用get_user_model()替代直接引用
借助Django提供的get_user_model()函数获取用户模型,PyCharm对这个函数的识别度更高:from django.contrib.auth import get_user_model User = get_user_model() class YourView(View): def get(self, request): # 此时request.user会被识别为自定义User的实例 if request.user.type == 'foo': # 你的业务逻辑用类型转换明确类型
如果不想修改变量赋值逻辑,可以用typing.cast强制指定类型:from typing import cast from user.models import User class YourView(View): def get(self, request): user = cast(User, request.user) if user.type == 'foo': # 你的业务逻辑
内容的提问来源于stack exchange,提问作者bdoubleu
相关产品推荐
相关产品推荐

