Ich verbrachte gestern den größten Teil des Tages damit, eine Antwort zu finden, konnte aber nicht herausfinden, wie man den Dekorator zum Modell hinzufügt.Wie kann ich ein Datum in einem Django-Modell berechnen?
Ziel: Berechnen Sie ein Datum, basierend auf dem Benutzer, der die Anzahl der Tage eingibt. Anwendungsfall: Der Benutzer gibt das "Startdatum" und die Anzahl der Tage in einem Formular ein. Beispiel: Der Benutzer gibt ein Startdatum vom 01.01.2017 und Tage = 5 an. Das Rechnungsdatum sollte der 16.01.2017 sein.
Ich konnte das berechnete Feld nicht durch meine Vorlage ziehen.
Codeschnipsel unten.
#models.py
from datetime import datetime, timedelta
from django.db import models
from django_extensions.db.models import TimeStampedModel
from django.urls import reverse
class Lease(TimeStampedModel):
location_name = models.CharField(max_length=120)
contingency_start_date = models.DateField(null=True, blank=True)
contingency_period_in_days = models.IntegerField(default=0)
...
def __str__(self):
return self.location_name
@property
def get_contingency_end_date(self):
return datetime.date(self.contingency_start_date) +
timedelta(days=self.contingency_period_in_days)
views.py
class LeaseDetailView(generic.DetailView):
model = Lease
def get_context_data(self, **kwargs):
context = super(LeaseDetailView, self).get_context_data(**kwargs)
context['options_list'] = Option.objects.all()
return context
detail.html
<li><strong>Start date</strong> {{ lease.contingency_start_date }}</li>
<li><strong>contingency_in_days </strong> {{ lease.contingency_period_in_days }}</li>
nicht
<li><strong>End date: </strong> {{ lease.get_contingency_end_date }}</li>
* Durchziehen auf meiner Vorlage. * Wie meinst du das? –
Bitte korrigieren Sie Ihren Einzug. – 2ps
@MosesKoledoye - durch ziehen durch, ich meine, dass der berechnete Wert nicht in der HTML-Vorlage angezeigt wird. – toddkovalsky