Django: пользовательский метод менеджера VS метод модели для переопределения создания?

Я не уверен, что понимаю фактическую цель использования метода create_object() в пользовательском менеджере, а не непосредственно в модели, когда мне нужно переопределить метод Class.objects.create() по умолчанию.

Единственная разница, которую я вижу, это то, как я бы это назвал:

  • Class.create_object() если метод create_object() есть в модели
  • Class.objects.create_object(), если create_object является пользовательским методом менеджера.

Тем не менее, я полагаю, что последнее является правильным, основываясь на примерах, которые я вижу в Django (например, с create_user). Я просто хотел бы понять, почему.

Спасибо!


person David D.    schedule 15.01.2018    source источник
comment
Похожие вопросы: stackoverflow.com/questions/17320333 и stackoverflow.com/questions/7692487   -  person Alasdair    schedule 15.01.2018
comment
Спасибо, принятый ответ на этот пост очень интересен. Однако я думаю, что это не дает прямого ответа на вопрос о случае создания объекта. (Я действительно знал о преимуществах пользовательских наборов запросов).   -  person David D.    schedule 15.01.2018
comment
Я не уверен, чем отличается случай создания объекта. Такие причины, как следование соглашению Django, возможность повторного использования кода, отсутствие загрязнения пространства имен экземпляра и т. д., по-прежнему применимы.   -  person Alasdair    schedule 15.01.2018
comment
@Alasdair О! Я не видел, чтобы в вашем комментарии было две ссылки. Я только что прочитал вторую часть и теперь понимаю лучше :)   -  person David D.    schedule 18.01.2018