PyCharm中类''的未解析属性引用'对象'

zhi*_*shi 41 python django pycharm

我使用社区pycharm,python的版本是3.6.1,django是1.11.1.此警告对运行没有影响,但我无法使用IDE的自动完成.

vis*_*ell 71

您需要启用Django支持.去

PyCharm - >首选项 - >语言和框架 - > Django

然后检查 Enable Django Support

  • Django目前仅支持pycharm的付费版本 (24认同)
  • @vishes_shell问题是关于社区版.我相信正确的答案是它无法完成. (4认同)
  • @vishes_shell如果我只是禁用此检查,自动完成也将被禁用.还有其他方法可以解决这个问题吗? (3认同)
  • @EricBlum是的,我知道,但是PyCharm很棒.并且有一种方法可以禁用此类检查.还有一种方法可以使用不同的IDE,例如Atom,Visual Code等. (2认同)

Cam*_*mpi 12

您还可以显式公开默认模型管理器:

from django.models import models

class Foo(models.Model):
    name = models.CharField(max_length=50, primary_key=True)

    objects = models.Manager()
Run Code Online (Sandbox Code Playgroud)


Jos*_*ani 11

为所有暴露对象的模型使用基础模型:

class BaseModel(models.Model):
    objects = models.Manager()
    class Meta:
        abstract = True


class Model1(BaseModel):
    id = models.AutoField(primary_key=True)

class Model2(BaseModel):
    id = models.AutoField(primary_key=True)
Run Code Online (Sandbox Code Playgroud)


小智 7

您可以尝试安装 django-stubs

pip install django-stubs
Run Code Online (Sandbox Code Playgroud)


eri*_*r75 5

pycharm professional中你可以这样做:

PyCharm -> 首选项 -> 语言和框架 -> Django

然后选中启用 Django 支持

如果你使用的是pycharm社区就可以做到;

在对象模型属性中添加 models.Manager()

class MyModel(models.Model):
    objects = models.Manager()
Run Code Online (Sandbox Code Playgroud)

另外你可以使用 pip install django-stubs