Django + pydev 的自动补全

2 投票
2 回答
2280 浏览
提问于 2025-04-16 21:48

我正在尝试让pydev自动补全我的模型数据中的变量,但到目前为止还没有成功。

我已经在

Window->Preferences->PyDev->Interpreter - Python

中配置了PYTHONPATH,确保它包含了django文件夹和我的项目文件夹。

然后,如果我有一个这样的模型:

class Team(models.Model):
  name = models.CharField(max_length=50)
  id = models.IntegerField()

并且从同一个django项目的另一个文件中导入这个文件

from MyProject.MyApp.models import Team

代码补全是有效的,比如我按CTRL+SPACE来显示自动补全的选项

team = Team.objects.[CTRL+SPACE]

但是如果我想要“自动补全”变量t时,它就不工作了。例如

team.[CTRL+SPACE]

没有给我任何选项。

有没有什么办法解决这个问题?谢谢。

更新:我进一步调查了问题的根源,发现这和路径配置或自动补全设置无关,似乎是与对象类型的检测有关(系统无法识别team是一个Team对象,因此不显示对象的属性)。

2 个回答

0

模型对象的自动补全功能坏掉了,或者至少在2008年的时候是这样的:

http://www.mail-archive.com/django-users@googlegroups.com/msg52874.html

你在用最新版本吗?

2

你有没有把你的网站包和项目文件夹添加到PyDev的Python路径里?

右键点击你的项目文件夹,然后...

选择 PyDev > 设置为PyDev项目

再右键点击一次,然后...

选择 属性 > PyDev - PYTHONPATH

点击外部库。然后点击添加源文件夹。选择你的项目文件夹和你的网站包文件夹。如果你在使用虚拟环境(virtualenv),当然,为什么不呢;)你需要选择对应虚拟环境的site-packages文件夹。你不需要选择系统的site-packages文件夹。

现在我们来检查一下自动补全的设置...

窗口 > 首选项 > PyDev > 编辑器 > 代码补全

我把自动补全设置为除了闭合括号以外的所有内容,自动补全的延迟时间设置为0。我也不建议开启自动导入功能。

希望这些能帮到你!

撰写回答