Comment définir un Django modèle du champ valeur par défaut à un appel de fonction / callable (par exemple, une date par rapport à l'heure de modèle de création de l'objet)

ÉDITÉ:

Comment puis-je configurer un Django par défaut d'une rubrique à une fonction qui récupère évalués à chaque fois qu'un nouveau modèle objet est créé?

Je veux faire quelque chose comme ce qui suit, sauf que dans ce code, le code est évaluée une fois et définit la valeur par défaut, à la même date pour chaque modèle objet créé, plutôt que d'évaluer le code à chaque fois qu'un modèle objet est créé:

from datetime import datetime, timedelta
class MyModel(models.Model):
  # default to 1 day from now
  my_date = models.DateTimeField(default=datetime.now() + timedelta(days=1))

ORIGINAL:

Je veux créer une valeur par défaut pour un paramètre de la fonction telle qu'elle est dynamique et obtient appelés et mis à chaque fois que la fonction est appelée. Comment puis-je le faire? par exemple,

from datetime import datetime
def mydate(date=datetime.now()):
  print date

mydate() 
mydate() # prints the same thing as the previous call; but I want it to be a newer value

Plus précisément, je veux le faire dans Django, par exemple,

from datetime import datetime, timedelta
class MyModel(models.Model):
  # default to 1 day from now
  my_date = models.DateTimeField(default=datetime.now() + timedelta(days=1))
  • La question est de misworded: il n'a rien à voir avec la fonction de paramètre par défaut. Voir ma réponse.
  • Par @NedBatchelder commentaire, j'ai édité ma question (indiqué comme "MODIFIÉ:") et à gauche l'original (indiqué comme "ORIGINAL:")
InformationsquelleAutor Rob Bednark | 2012-09-29