Festlegen des Standardwerts eines Django-Modellfelds auf einen Funktionsaufruf / aufrufbar (z. B. ein Datum relativ zur Zeit der Modellobjekterstellung)

BEARBEITET:

Wie kann ich die Standardeinstellung eines Django-Felds auf eine Funktion setzen, die jedes Mal ausgewertet wird, wenn ein neues Modellobjekt erstellt wird?

Ich möchte wie folgt vorgehen, mit der Ausnahme, dass in diesem Code der Code einmal ausgewertet wird und der Standardwert für jedes erstellte Modellobjekt auf dasselbe Datum festgelegt wird, anstatt den Code jedes Mal auszuwerten, wenn ein Modellobjekt erstellt wird:

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:

Ich möchte einen Standardwert für einen Funktionsparameter erstellen, der dynamisch ist und bei jedem Funktionsaufruf aufgerufen und festgelegt wird. Wie kann ich das machen? z.B.,

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

Konkret möchte ich das in Django machen, z.

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))

Antworten auf die Frage(6)

Ihre Antwort auf die Frage