После изменения данных с помощью сигнала мне нужно отобразить его с новым значением
Я сделал ограничение по времени на один час для заказа. Если пользователь не успевает получить свой заказ вовремя, то статус заказа меняется на не доставлен. У меня есть сигнал, который срабатывает после создания заказа и вызывает функцию с задержкой в один час, и меняет статус на "не доставлен". И я хочу знать, как сделать так, чтобы пользователь знал об этом. У меня есть шаблон, который показывает статус модели заказа, но не показывает изменения после сигнала. Как я могу показать этот новый статус пользователю?
Мой models.py
class Order(models.Model):
NOT_DELIVERED = 'не доставлено'
DELIVERING = 'в пути'
DELIVERED = 'доставлено'
STATUS_CHOICES = (
(NOT_DELIVERED, 'не доставлено'),
(DELIVERING, 'в пути'),
(DELIVERED, 'доставлено')
)
full_name = models.CharField(max_length=150)
email = models.EmailField()
street = models.CharField(max_length=50)
building = models.CharField(max_length=50)
flat = models.CharField(max_length=50, null=True)
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
paid = models.BooleanField(default=False)
status = models.CharField(choices=STATUS_CHOICES, default=DELIVERING, max_length=20)
class Meta:
ordering = ['-created']
verbose_name_plural = 'orders'
def __str__(self):
return f'Order {self.id}'
def get_total_cost(self):
return sum(item.get_cost() for item in self.items.all())
def status_deactivate(self):
if self.status != self.DELIVERED:
self.status = self.NOT_DELIVERED
self.save()
print(self.status)
else:
print('user got his order')
Мой signals.py
@receiver(post_save, sender=Order)
def set_status(sender, instance, created, **kwargs):
if created:
timer = Timer(datetime.timedelta(hours=1).total_seconds(), instance.status_deactivate)
timer.start()
Заранее спасибо за помощь :)