Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将django模型管理器代码完成添加到Komodo_Python_Django_Komodo - Fatal编程技术网

Python 将django模型管理器代码完成添加到Komodo

Python 将django模型管理器代码完成添加到Komodo,python,django,komodo,Python,Django,Komodo,我已经使用ActiveState Komodo有一段时间了,虽然大部分代码完成都很到位,但它缺少Django模型管理器的代码完成 我已经将Django目录包含在我的PYTHONPATH中,并完成了大部分代码,值得注意的例外是模型 假设我有一个模型users,我希望代码users.objects.会显示自动完成选项,例如all(),count(),filter()等。但是,这些选项是由模型的管理器添加的,它以一种似乎不正常的方式添加的 我想知道我是否能“强迫”科莫多去买模型 模型管理器似乎包含在以

我已经使用ActiveState Komodo有一段时间了,虽然大部分代码完成都很到位,但它缺少Django模型管理器的代码完成

我已经将Django目录包含在我的
PYTHONPATH
中,并完成了大部分代码,值得注意的例外是模型

假设我有一个模型
users
,我希望代码
users.objects.
会显示自动完成选项,例如
all()
count()
filter()
等。但是,这些选项是由模型的管理器添加的,它以一种似乎不正常的方式添加的

我想知道我是否能“强迫”科莫多去买模型

模型管理器似乎包含在以下代码中(取自manager.py)


特别是最后两行。有没有办法告诉Komodo,
.objects=Manager()
这样就可以显示正确的代码完成情况?

实现这一点的最简单方法可能是在models.py的顶部添加以下内容:

from django.db.models import manager
然后在每个模型下添加

objects = manager.Manager()
因此,例如,以下内容:

class Site(models.Model):
    name = models.CharField(max_length=200)
    prefix = models.CharField(max_length=1)
    secret = models.CharField(max_length=255)

    def __unicode__(self):
        return self.name
变成

class Site(models.Model):
    name = models.CharField(max_length=200)
    prefix = models.CharField(max_length=1)
    secret = models.CharField(max_length=255)

    objects = manager.Manager()

    def __unicode__(self):
        return self.name
这就是您(显式)设置自己的模型管理器的方式,通过显式地将模型管理器设置为默认值,Kommodo可以完美地完成代码


希望这能对某人有所帮助:-)

如果有更好的方法,请让我知道(例如神奇地执行上述自动操作)
class Site(models.Model):
    name = models.CharField(max_length=200)
    prefix = models.CharField(max_length=1)
    secret = models.CharField(max_length=255)

    objects = manager.Manager()

    def __unicode__(self):
        return self.name