У меня есть модель django, которая содержит детали того, когда конкретное задание (напоминание по электронной почте) должно быть запущено для определенного бронирования.
Это выглядит примерно так: -
class Task(models.Model):
PENDING = 'pending'
IN_PROGRESS = 'in_progress'
COMPLETE = 'complete'
STATES = (
(PENDING, 'Pending'),
(IN_PROGRESS, 'In Progress'),
(COMPLETE, 'Complete')
)
run_at = models.DateTimeField()
state = models.CharField(max_length=50, choices=STATES, default=PENDING)
class Meta:
ordering = ['run_at']
Когда дата бронирования меняется, я хочу, чтобы время выполнения соответствующей задачи обновлялось.
Насколько я вижу, есть несколько способов сделать это: -
- В коде представления.
- В методе сохранения модели Task.
- Использование сигналов.
В общем, я думаю, что это делает большинствосмысл использовать код представления - это более явно так.Но код, с которым я работаю, очень старый, и дату бронирований можно менять из разных мест разными способами, и я не уверен, что могу быть на 100% уверен, что поймал каждое место вчто это может произойти.Если я что-то пропущу, в этом случае задание не будет обновлено.
Кроме того, если кто-то еще добавит код, который изменяет даты бронирования, он должен знать об этом, чтобы обновить задания.
Так что имеет ли смысл использовать метод сохранения?Или просто постарайтесь как можно тщательнее найти все места, где можно изменить дату бронирования?