Wie ich im Titel sage, muss ich automatisch ein Feld meines Django-Modells ausfüllen, speziell ein DateField, das eine X-Anzahl von Tagen hinzufügt, die ich im selben Modell formuliere.Wie kann ich einem Datetime-Feld eines Django-Modells Tage hinzufügen, indem ich ein IntegerField des gleichen Modells verwende?
In meinem Fall muss ich die Anzahl der Tage hinzufügen, die ich in "total_days" zu dem Datum, das ich verwende, in das Feld "start_day" einfügen und das Ergebnis auf "end_day" speichern. Hier
ist das Modell:
class Certificate(models.Model):
employee = models.ForeignKey(Employee)
license_type = models.IntegerField(choices=LICENSE_TYPES, default=1)
disease_type = models.IntegerField(choices=DESEASE_TYPES, blank=True, null=True)
total_days = models.PositiveIntegerField()
extra_days = models.PositiveIntegerField(Default=0)
start_day = models.DateField()
end_day = models.DateField(, editable=False)
doctor = models.ForeignKey(Doctor)
diagnostic = models.CharField(max_length=150)
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
created_by = models.ForeignKey(User, related_name='certificates_created_by', editable=False)
modified_by = models.ForeignKey(User, related_name='certificates_modified_by', editable=False, blank=True, null=True)
class Meta:
verbose_name = "certificado"
verbose_name_plural = "certificados"
def __str__(self):
pass
Nun, ich versuche mit „Timedelta“ aber ich kann nicht das start_day Feld verwenden, da dies nicht erkennen, wie eine ganze Zahl ist. Und timedelta benötigt einen ganzzahligen Parameter.
Irgendeine Idee darüber, wie ich das tun kann ???
Jetzt mache ich das direkt auf die Ansicht und sende das Ergebnis auf den Kontext der Vorlage. Aber der Benutzer muss dies von Anfang an in der Datenbank behalten.
Vielen Dank!
Zuerst möchten Sie es nicht in Ihrem Modell hinzufügen! Sie müssen eine Funktion erstellen wie: def total_day (self): >>> Anzahl der Tage zurückgeben! – rakwen
Jetzt Wie berechnen Sie den Gesamttag ??? – rakwen
ist keine berechnung das stelle ich manuell in die form! ist ein Arzt-Zertifikat, wie viele Tage der Erholung er einer Person gibt. Ich muss diese Anzahl von Tagen in das Formular eintragen (wenn der Arzt 4 Tage Ruhe gibt, gebe ich diese Zahl an total_days ein). – marcosgue