代码完成Pydev Django模型外键字段

时间:2011-09-30 23:20:09

标签: python django eclipse autocomplete pydev

Eclipse / pydev中的代码完成对我来说很不错。然而,有一件事不能像我想要的那样起作用。考虑以下django模型:

class ReletionTree(models.Model):
    mother = models.ForeignKey('RelationTree', blank=True, null=True)
    father = models.ForeignKey('RelationTree', blank=True, null=True)
    name = models.CharField()

rt = RelationTree.objects.get(name='Mary') #assume unique on Mary

现在问题:

rt.        #--> will code complete and give me options mother/father/name
rt.mother. #--> will not code complete into mother/father/name, it will code 
           #    complete as if isinstance(rt.mother, models.ForeignKey) (I think)

有没有办法让Pydev明白我希望它能够编写完整的外键 好像它们指向的类型(在上面的例子中是RelationTree而不是models.ForeignKey)

谢谢大卫

2 个答案:

答案 0 :(得分:1)

我非常怀疑(我也做Django和Eclipse),因为Pydev不够聪明,无法理解Django用于将father = models.ForeignKey()转换为father = RelationTree()或其他什么的奇怪元类。

Python很难让自动填充程序解析,而PyDev和PyLint似乎完全放弃了元类。 (pylint总是抱怨我的模型类没有objects成员!)

答案 1 :(得分:0)

大约3年多以后,我的6个月项目仍未完成(=。但我现在知道了:

  1. 您应该使用 pycharm 而不是 eclipse + pyDev 。在我看来,他们的免费版对python开发来说要好得多。
  2. Pycharm专业版也支持django代码完成。它为我节省了很多时间。