Dans mon modèle, j'ai 2 propriétés datetime:Python, Django, datetime
start_date
end_date
Je voudrais compter de la date de fin comme une semaine de après la start_date.
Comment puis-je accomplir ceci?
Dans mon modèle, j'ai 2 propriétés datetime:Python, Django, datetime
start_date
end_date
Je voudrais compter de la date de fin comme une semaine de après la start_date.
Comment puis-je accomplir ceci?
>>> import datetime
>>> start_date = datetime.datetime.now()
>>> end_date = start_date + datetime.timedelta(7)
>>> print end_date
simplement ajouter 7 jours à la date de début, en utilisant la classe timedelta –
Si vous voulez toujours votre date_fin être une semaine après la start_date, ce que vous pourriez faire, est de faire une coutume méthode de sauvegarde pour votre modèle. Une autre option serait d'utiliser des signaux à la place. Le résultat serait le même, mais puisque vous traitez avec les données de modèles, je suggérerais que vous optiez pour la méthode de sauvegarde personnalisée. Le code pour cela ressemblerait à quelque chose comme ceci:
class ModelName(models.Model):
...
def save(self):
# Place code here, which is excecuted the same
# time the ``pre_save``-signal would be
self.end_date = self.start_date + datetime.timedelta(days=7)
# Call parent's ``save`` function
super(ModelName, self).save()
Vous pouvez lire un peu sur la façon dont la méthode save/signaux est appelé dans les django docs à: http://docs.djangoproject.com/en/dev/ref/models/instances/
Si vous utilisez le paquet datetime, n'oubliez pas de lire http://www.enricozini.org/2009/debian/using-python-datetime / – Mapio
Il est généralement (mais pas toujours) mieux avoir une heure de début et une durée. YMMV. –