Я уже некоторое время использую ActiveState Komodo, и хотя большая часть дополнения кода находится на нем, отсутствует завершение кода из менеджера моделей Django.
Я включил каталог Django в свой PYTHONPATH
и получить большую часть завершения кода, заметным исключением являются модели.
Если предположить, что у меня есть модель users
Я бы ожидал, что код users.objects.
покажет параметры автозаполнения, такие как all()
, count()
, filter()
и т. Д., Однако они добавляются менеджером модели, который делает это, по-видимому, ненормально.
Мне интересно, могу ли я «заставить» Komodo подобрать модели.
Менеджер моделей выглядит включенным из следующего кода (взятого из manager.py)
def ensure_default_manager(sender, **kwargs):
"""
Ensures that a Model subclass contains a default manager and sets the
_default_manager attribute on the class. Also sets up the _base_manager
points to a plain Manager instance (which could be the same as
_default_manager if it's not a subclass of Manager).
"""
cls = sender
if cls._meta.abstract:
return
if not getattr(cls, '_default_manager', None):
# Create the default manager, if needed.
try:
cls._meta.get_field('objects')
raise ValueError("Model %s must specify a custom Manager, because it has a field named 'objects'" % cls.__name__)
except FieldDoesNotExist:
pass
cls.add_to_class('objects', Manager())
cls._base_manager = cls.objects
...
В частности, последние две строки.Есть ли способ сообщить Комодо, что <model>.objects = Manager()
показывает правильное завершение кода?