[英]Pycharm can't auto complete some modules
Pycharm 在大多数情况下都能正常工作。 但它不能自动完成一些代码。
以下“对象”无法完成。 谁知道为什么?
我使用 Pycharm 社区版和 Django 2.2
class SnippetList(APIView):
"""
List all snippets, or create a new snippet.
"""
def get(self, request):
snippets = Snippet.objects.all() # The objects can't be auto completed.
serializer = SnippetSerializer(snippets, many=True)
return Response(resp)
省电模式已关闭。
Django 是专业版的一部分,因此您需要它才能完成工作。 看到这个
我找到了一个解决方案,它适用于对象级别,深层仍然不起作用。
# pip install django-stubs
class BaseModel(models.Model):
objects = models.Manager()
class Meta:
abstract = True
class Snippet(BaseModel):
created = models.DateTimeField(auto_now_add=True)
看来您正在使用 Django。
PyCharm 社区版不提供 Django 的自动补全(我没有使用专业版)。
要使用 PyCharm 自动完成功能,您必须使用 python 的type hinting
功能,该功能可从python3.5
获得,并在python3.6
上添加了一些其他功能。
您可以使用django-hint模块来帮助您进行类型提示。
例如,如果您这样编写 model:
from django.db import models
from django_hint import StandardModelType
class Snippet(models.Model, StandardModelType):
"""Just like any other model"""
pass
从StandardModelType
继承,在进行查询时, objects
将作为自动完成提供。 StandardModelType
不会影响您的数据库,也不会创建迁移。
注意需要python3.6
或更高版本才能使用django-hint
免责声明:我是django-hint
的作者
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.