PyCharm 中 Django 文档字符串中未解决的引用

Posted

技术标签:

【中文标题】PyCharm 中 Django 文档字符串中未解决的引用【英文标题】:Unresolved reference in Django's docstring in PyCharm 【发布时间】:2016-11-04 22:20:33 【问题描述】:

我在我的 Django 项目中使用 Google Style Python Docstrings like in this Example。 当我创建一个类并在文档字符串中使用属性表示法时,Pycharm 总是说 - “未解析的引用”。

class Post(models.Model):
    """
    Class for posts.

    Attributes:
        title(str): Post title.
    """
    title = models.CharField(max_length=120)

我知道 PyCharm 看不到 selftitledef __init__() 函数并编写此错误,但在 Django 中,我从未见过将 def __init__() 用于从 models 继承的类。

我该怎么办?这是我的错误还是 PyCharm 在这种情况下看不到上下文?我应该使用def __init__() 或其他方式还是以其他方式编写文档?

【问题讨论】:

您可以忽略 Django 的此类错误或在 youtrack 中创建问题以支持此功能。我猜它没有在 pycharm 专业版中实现。 【参考方案1】:

PyCharm 目前似乎不支持此功能。 JetBrains 问题跟踪器中针对此问题的活跃问题是 https://youtrack.jetbrains.com/issue/PY-16760,请考虑对其进行投票以修复它。如果您想避免在文档字符串中看到这些“未解决的引用”错误,唯一的解决方法是禁用首选项 > 编辑器 > 检查 > 未解决的引用中的检查。

我过去尝试过的另一个选项是删除“属性:”标题并将我的属性文档写入与文档字符串的其余部分相同的缩进级别。这不再向您发出警告,但您不再 100% 遵守 Google 文档字符串样式指南。

【讨论】:

【参考方案2】:

我通过在“属性:”后添加“# noqa”解决了这个问题,因为我不想禁用未解决的引用警告。

所以这将是最终的文档字符串:

"""
Class for posts.

Attributes:  # noqa
    title(str): Post title.
"""

【讨论】:

【参考方案3】:

以下内容对我有用:在您的文档字符串中,写 Attribute: 而不是 Attributes: 会使错误消失。这使您可以保持缩进级别

【讨论】:

以上是关于PyCharm 中 Django 文档字符串中未解决的引用的主要内容,如果未能解决你的问题,请参考以下文章

Celery Django 未注册任务,shell 中未找到模块错误

PyCharm 中未使用的错误导入语句?

添加 PyCharm 中未显示的远程选项

Django学习系列之模板

Pycharm 检查未标记从存根对象继承的类中未解析的引用

表是现成的。 PyCharm 中未解析的表引用