How can I add certain number of day to a date, with python - timedelta?

Solution 1:

As you can see in the error message you are concattinating strings:

data_scadenza = self.data_decorrenza + \
                str(datetime.timedelta(days=30))

Try this:

data_scadenza = self.data_decorrenza + \
                datetime.timedelta(days=30)

Solution 2:

I found the solution in the end, which is: models.py

@property
def get_data_scadenza(self):
    data_decorrenza = dt.strptime(self.data_decorrenza, '%Y-%m-%d')
    if self.frazionamento == 'Annuale':
        data_scadenza = data_decorrenza + timedelta(days=365)
    elif self.frazionamento == 'Semestrale':
        data_scadenza = data_decorrenza + timedelta(days=180)
    elif self.frazionamento == 'Quadrimestrale':
        data_scadenza = data_decorrenza + timedelta(days=120)
    elif self.frazionamento == 'Mensile':
        data_scadenza = data_decorrenza + timedelta(days=30)

    return data_scadenza

Now everything works perfectly!!