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)
省电模式已关闭。
答案 0 :(得分:0)
答案 1 :(得分:0)
Django是专业版的一部分,因此您需要它才能完成工作。 参见this
答案 2 :(得分:0)
我找到了一个解决方案,它在对象级别有效,但在深度级别仍然无效。
# 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)
答案 3 :(得分:0)
似乎您正在使用Django。
PyCharm社区版在Django上不提供自动补全功能(我还没有使用专业版)。
要使用PyCharm自动完成功能,您必须使用python的type hinting
功能(可从python3.5
获得)以及python3.6
上添加的其他一些功能。
您可以使用django-hint模块来帮助您进行类型提示。
例如,如果您以这种方式编写模型:
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