Last modified: Jan 10, 2023 By Alexander Williams

Django DurationField (Examples)

Example 1


class DivergentResponse(models.Model):
    divergent_set = models.ForeignKey(DivergentResponseSet, on_delete=models.CASCADE)
    response_1 = models.CharField(max_length=50)
    response_2 = models.CharField(max_length=50)
    response_3 = models.CharField(max_length=50)
    response_4 = models.CharField(max_length=50)
    response_5 = models.CharField(max_length=50)
    time_1 = models.DurationField()
    time_2 = models.DurationField()
    time_3 = models.DurationField()
    time_4 = models.DurationField()
    time_5 = models.DurationField()
    total_time = models.DurationField()
    stimulus = models.ForeignKey(Stimulus, on_delete=models.PROTECT, null=True, blank=True)

Example 2


class Route(models.Model):
    RouteId = models.AutoField(primary_key=True, default=0)
    Destination1 = models.ForeignKey("MumbaiLocation", related_name = "Destination1")
    Destination2 = models.ForeignKey("MumbaiLocation", related_name = "Destination2")
    Slot11 = models.DurationField(default="00:30:00")
    Slot21 = models.DurationField(default="00:30:00")
    Slot31 = models.DurationField(default="00:30:00")
    Slot41 = models.DurationField(default="00:30:00")
    Slot51 = models.DurationField(default="00:30:00")
    Slot12 = models.DurationField(default="00:30:00")
    Slot22 = models.DurationField(default="00:30:00")
    Slot32 = models.DurationField(default="00:30:00")
    Slot42 = models.DurationField(default="00:30:00")
    Slot52 = models.DurationField(default="00:30:00")

    def __str__(self):
        return str(self.Destination1) + "-" + str(self.Destination2)

Example 3


class Days(models.Model):

    monday              = models.DurationField(default=timedelta())
    tuesday             = models.DurationField(default=timedelta())
    wednesday           = models.DurationField(default=timedelta())
    thursday            = models.DurationField(default=timedelta())
    friday              = models.DurationField(default=timedelta())
    saturday            = models.DurationField(default=timedelta())
    sunday              = models.DurationField(default=timedelta())

    user                = models.ForeignKey(User)

    def __unicode__(self):
        return self.user


Example 4


class Session(models.Model):
    user = models.ForeignKey(User, related_name="sessions", on_delete=models.CASCADE)
    potential = models.DecimalField(max_digits=10, decimal_places=2, default=0)
    actual = models.DecimalField(max_digits=10, decimal_places=2, default=0)
    start = models.DateTimeField(default=None, blank=True, null=True)
    end = models.DateTimeField(default=None, blank=True, null=True)
    est_duration = models.DurationField(default=timedelta())
    time_bonus = models.DurationField(default=timedelta())
    time_challenge = models.DurationField(default=timedelta())
    act_duration = models.DurationField(default=timedelta())
    on_time = models.BooleanField(default=False)

Example 5


class UserActions(models.Model):
    """ save urls called by users """
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    url = models.CharField(max_length=300, null=False)
    method = models.CharField(max_length=4, null=False)
    timestamp = models.DateTimeField(default=timezone.now, null=False)
    duration = models.DurationField(null=False)

Example 6


class Perfo(models.Model):
    Refparcours = models.ForeignKey(BikeTour, blank=True, null=True, on_delete=models.CASCADE)
           # on_delete=models.CASCADE : Perfo effacée si BikeTour effacé !
           # blank=True, null=True : autorisé pour permettre importation de tours sans référence Refparcours
    Date = models.DateField(default=None)    
    Distance = models.FloatField(default=None)
    Temps = models.DurationField(default=None)
    Remarques = models.CharField(max_length=1000, default=None, blank=True, null=True)
    Dénivelé = models.FloatField(default=None, blank=True, null=True)
    Vitesse_max = models.FloatField(default=None, blank=True, null=True)
    FC_moy = models.FloatField(default=None, blank=True, null=True)
    FC_max = models.FloatField(default=None, blank=True, null=True)