Je ne sais pas exactement ce dont vous avez besoin, mais:
1) Si vous avez besoin Reminder.date toujours revenir Event.date - 7
import datetime
class Reminder(models.Model):
email = models.EmailField("e-mail")
event = models.ForeignKey(Event, unique=True, related_name='event',)
def date(self):
return self.event.date - datetime.timedelta(days=7)
class Event(models.Model):
date = models.DateTimeField(_(u"Event Date"), auto_now_add=True,)
2) Si vous avez besoin pour régler la date sur l'événement de sauvegarde ou de rappel sauver, faites ceci:
import datetime
class Reminder(models.Model):
email = models.EmailField("e-mail")
event = models.ForeignKey(Event, unique=True, related_name='event',)
date = models.DateTimeField(_(u"Remind date"), auto_now_add=False,)
# update date on save
def save(self, *args, **kwargs):
self.date = self.event.date - datetime.timedelta(days=7)
super(Reminder, self).save(*args, **kwargs)
class Event(models.Model):
date = models.DateTimeField(_(u"Event Date"), auto_now_add=True,)
# update all reminders on event save
def save(self, *args, **kwargs):
reminder_date = self.date - datetime.timedelta(days=7)
self.reminders.update(date=reminder_date)
super(Event, self).save(*args, **kwargs)
S'il vous plaît noter que je ne l'ai pas testé le code et il pourrait y avoir fautes de frappe.
pas quelque chose comme self.date = self.event.date? – crivateos
Désolé. J'ai mal compris votre question. J'ai édité ma réponse. –