我使用社区pycharm,python的版本是3.6.1,django的版本是1.11.1。这个警告对运行没有影响,但是我不能使用IDE的自动完成功能。
uelo1irk1#
我发现了这个使用存根文件的笨拙变通方法: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()
这将启用PyCharm的代码完成:
这类似于Campi的解决方案,但避免了重新声明默认值的需要
rqenqsqc2#
我发现的另一个解决方案是在任何模型上放置@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
tag5nh1u3#
您可以尝试安装django-stubs
pip install django-stubs
rqmkfv5c4#
您需要启用Django支持。转到
PyCharm -〉首选项-〉语言和框架-〉Django
然后检查 * Enable Django Support *
Enable Django Support
vaqhlq815#
您也可以显式地公开默认的模型管理器:
from django.db import models class Foo(models.Model): name = models.CharField(max_length=50, primary_key=True) objects = models.Manager()
n6lpvg4x6#
对所有公开对象的模型使用基本模型:
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)
deyfvvtc7#
Python框架(Django,Flask等)仅在专业版中支持。查看下面的链接以了解更多详细信息。PyCharm Editions Comparison
7条答案
按热度按时间uelo1irk1#
我发现了这个使用存根文件的笨拙变通方法:
models.py
models.pyi
这将启用PyCharm的代码完成:
这类似于Campi的解决方案,但避免了重新声明默认值的需要
rqenqsqc2#
我发现的另一个解决方案是在任何模型上放置@python_2_unicode_compatible装饰器,它还要求您的函数有一个str实现
例如:
tag5nh1u3#
您可以尝试安装django-stubs
rqmkfv5c4#
您需要启用Django支持。转到
PyCharm -〉首选项-〉语言和框架-〉Django
然后检查 *
Enable Django Support
*vaqhlq815#
您也可以显式地公开默认的模型管理器:
n6lpvg4x6#
对所有公开对象的模型使用基本模型:
deyfvvtc7#
Python框架(Django,Flask等)仅在专业版中支持。查看下面的链接以了解更多详细信息。
PyCharm Editions Comparison