我使用社区pycharm,python的版本是3.6.1,django是1.11.1。此警告对运行没有影响,但我无法使用IDE自动完成。
答案 0 :(得分:54)
您需要启用Django支持。转到
PyCharm - >偏好 - >语言与框架 - > Django
然后检查 Enable Django Support
答案 1 :(得分:7)
您还可以显式公开默认模型管理器:
from django.models import models
class Foo(models.Model):
name = models.CharField(max_length=50, primary_key=True)
objects = models.Manager()
答案 2 :(得分:3)
仅在专业版中支持Python框架(Django,Flask等)。 请查看下面的链接以获取更多详细信息。
答案 3 :(得分:0)
我找到的另一个解决方案是在任何模型上放置@ python_2_unicode_compatible装饰器。 它还要求您有一个 str 实现四个函数
例如:
# models.py
from django.utils.encoding import python_2_unicode_compatible
@python_2_unicode_compatible
class SomeModel(models.Model):
name = Models.CharField(max_length=255)
def __str__(self):
return self.name
答案 4 :(得分:0)
我发现了使用存根文件的这种变通方法:
models.py
from django.db import models
class Model(models.Model):
class Meta:
abstract = True
class SomeModel(Model):
pass
models.pyi
from django.db import models
class Model:
objects: models.Manager()
这类似于Campi的解决方案,但避免了需要重新声明默认值
答案 5 :(得分:0)
为所有公开对象的模型使用基本模型:
class BaseModel(models.Model):
objects = models.Manager()
class Model1(BaseModel):
id = models.AutoField(primary_key=True)
class Model2(BaseModel):
id = models.AutoField(primary_key=True)