【问题标题】:PyCharm not detecting unresolved references [Django]PyCharm 未检测到未解析的引用 [Django]
【发布时间】:2016-10-24 16:40:18
【问题描述】:

所以我遇到了 PyCharm 问题,找不到解决方案。 它无法识别未解析的引用:

图像还显示它无法自动完成 request.session。它只发生在 .session 上,它适用于所有其他属性。

此外,这张图片显示它确实检测到其他内容的未解析引用:

我在 virtualenv 上运行它,解释器配置正确并且我启用了 Django 支持。

哦,我正在使用 Python3 和 Django 1.10.2

编辑:刚刚在其他项目中尝试过。它不适用于 Django 1.10.x,但适用于 Django 1.9.x

【问题讨论】:

  • 是否应该向 PyCharm 报告错误?
  • @JeffBridgman 我不确定这是一个错误还是我遗漏了什么,因为它昨天工作正常。
  • 我是 Jetbrains 的忠实客户,他们拥有出色的官方支持渠道。
  • @PauloScardine 我会去那里,谢谢! :)

标签: python python-3.x pycharm virtualenv django-1.10


【解决方案1】:

好吧,在您的第一个示例中,requestdummy_view 函数的参数 - Pycharm 如何知道它是什么类型以便检查未解析的引用(或提供自动完成建议)?

您可以添加检查request 的类型(也可能是防止错误的好主意):

def dummy_view(request):
    assert isinstance(request, ExpectedClassType)

或者,既然您使用python-3.x 标记了您的问题,您也可以使用type hinting

def dummy_view(request: ExpectedClassType):

【讨论】:

  • 它确实知道,它支持 Django。它适用于具有早期版本 Django 的项目。当这个可能的错误没有修复时,我会输入提示参数,谢谢:)
  • 我不是在谈论 Django 支持——这很重要,但前提是变量类型已知(然后可以在 Django 支持中查找),我说的是 实际的代码上下文。与早期版本进行比较时,请使用 exact 相同的代码,而不是像您在这个问题中所做的那样,在 2 个不同的上下文中比较未定义的引用检查:未知参数(局部变量)可以是任何东西与一个已知的类实例。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-01-19
  • 1970-01-01
  • 2019-01-14
  • 1970-01-01
  • 2018-09-16
  • 2017-07-22
  • 1970-01-01
相关资源
最近更新 更多