I'm trying to figure out how to add x numbers of days to a field in my Models.py. I read a lot of posts on Stack Overflow (for example this one) and on docs.djangoproject.com.
What I understand is that the best approach is to override the save method. But I can't get it to work. From MeetingSetting I try to get an Integer from the selected day. Then add this number to led_date in MeetingDataLED.
Here is my models.py
from django.db import models
from datetime import datetime, time, timedelta
# Create your models here.
class MeetingSetting(models.Model):
class Weekdagen(models.IntegerChoices):
MONDAY = 0
TUESDAY = 1
WEDNESSDAY = 2
THURSDAY = 3
FRIDAY = 4
SATERDAY = 5
SUNDAY = 6
meeting_time_led = models.TimeField()
meeting_time_wt = models.TimeField()
meeting_day_led = models.IntegerField(choices=Weekdagen.choices)
meeting_day_wt = models.IntegerField(choices=Weekdagen.choices)
class MeetingDataLED(models.Model):
led_date = models.DateField(primary_key=True)
led_meeting_date = models.DateField(blank=True)
led_start_time = models.TimeField()
led_type_of_meeting = {
('GBS', 'Special one'),
('KO', 'Special two'),
('NM', 'Special three'),
}
led_meeting_type = models.CharField(max_length=3, choices=led_type_of_meeting)
def save(self, *args, **kwargs):
from datetime import datetime, timedelta
d = timedelta(days=MeetingSetting.meeting_day_led(id=1))
self.led_meeting_date = self.led_date() + d
super(MeetingDataLED, self).save(*args, **kwargs)
When I go to the admin page and try to submit some data I get the following error: "'DeferredAttribute' object is not callable"
When I change
d = timedelta(days=MeetingSetting.meeting_day_led(id=1))
to
d = timedelta(days=3)
I get the error: "'datetime.date' object is not callable"
I'm in the dark here in what to do. If someone can point me in the right direction that would be really appreciated.