Что я хочу сделать, когда какая-то модель использует мое поле, она автоматически добавит к этой модели пользовательский менеджер.Как добавить менеджера из поля
Насколько я знаю, contibute_to_class обеспечивают такие функциональные возможности
class MyCustomField(CharField):
def contribute_to_class(self, cls, name):
super(MyCustomField, self).contribute_to_class(cls, name)
setattr(cls, 'custom_manager', CustomManager())
Проблема заключается в том, что в моем пользовательском менеджере я использую self.model._default_manager делать запросы к менеджеру по умолчанию, но когда я пытаюсь сделать это, django говорит, что атрибут AttributeError: объект «NoneType» не имеет атрибута «_default_manager»
Если я не использую Contrib_to_class и напишу собственный менеджер, то мой класс модели будет работать так, как ожидалось. В чем проблема?
Настройка диспетчера.model вручную хакерская и хрупкая. Это лишь часть того, что делает Manager.contribute_to_class - реальное решение состоит в том, чтобы обеспечить правильность вызова Manager.contribute_to_class. –