Лучший способ изменить поле модели django автоматически через определенное время?
Я создаю сервис, похожий на эскроу, и мне нужно отправлять электронные письма клиентам, чтобы они могли проверить, получили ли они пакет через определенное время после покупки. У меня есть класс заказа с булевым атрибутом "funds_unlocked". Он может быть установлен в TRUE, только если клиент доволен своим товаром (то есть он устанавливает его в TRUE) или если прошло 2 недели, а клиент не ответил. Тогда атрибут "funds_unlocked" автоматически устанавливается в TRUE и баланс счета продавца увеличивается. Как я могу автоматически отправлять электронные письма покупателю и автоматически изменять поле на TRUE через 2 недели?
class Order(models.Model):
funds_unlocked = models.BooleanField(default=False)
def save(self, *args, **kwargs):
// if (old order funds_unlocked = False) and (new order funds_unlocked = True):
// increase Balance of vendor
Есть ли другие/более простые способы, чем сделать это с сельдереем? Как бы вы это сделали?
Заранее спасибо
Вы можете использовать celery для создания периодической задачи, которая проверяет каждый день или час наличие записей, удовлетворяющих этим требованиям, обновляет ее и отправляет письмо:
https://django-celery-beat.readthedocs.io/en/latest/index.html