Я понимаю роль Managers
в Django при перечислении или фильтрации данных. Однако, когда речь идет о сохранении данных на модели, которую я часто видим следующие два способа используются ...Как использовать Менеджеров для сохранения данных в Django
Использование диспетчера:
class Project(TimeStampedModel):
stuff
def save(self, **kwargs):
Action.objects.log_action(user=self.user,comment="Saves a project")
Не используя менеджер:
class Project(TimeStampedModel):
stuff
def save(self, **kwargs):
action = Action(user=self.user,comment="Saves a project")
action.save
Так мой вопрос, учитывая приведенный выше сценарий, который является правильным?
Итак, в приведенном выше случае вы должны использовать опцию Manager? – Prometheus
Да, :-) Если у вас есть другие модели где-то в вашем проекте, которые требуют 'log_action', эта модель должна дублировать логику' log_action', если вы не отринули ее в менеджере. – Yeo