Как суммировать время на основе заданного времени в django?

class Clock(models.Model):
report_submitted_at = models.TimeField()
delivery_time = models.TimeField(null=True, Blank=True)

Я новичок в Django, поэтому мне интересно, как этого добиться. В моей модели report_submitted_at я ввожу время. На основе введенного времени я хочу автоматически сохранять время доставки. Время доставки всегда '04:00:00'. Итак, предположим, я ввел время report_submitted_time '02:00:00'. Время доставки будет '06:00:00' для этой строки.

Я импортировал datetime. Вручную я могу добавить два времени. Но как я могу сохранить время доставки автоматически. Любая помощь будет очень признательна. Спасибо!!!

Вы можете использовать сигналы Django следующим образом.

from django.dispatch import receiver
from django.db import models


@receiver(signal=models.signals.post_save, sender=Clock):
def set_delivery_time(sender, instance, created, **kwargs):
    if created:  # For new objects, it will be True. In case of updating old object, it will be false
        instance.delivery_time = instance.report_submitted_at.replace(hour=instance.report_submitted_at.hour + 4)
        instance.save()
Вернуться на верх