Jak ustawić domyślną wartość pola modelu Django na wywołanie funkcji / wywołanie (np. Datę względem czasu utworzenia obiektu modelu)
EDYTOWANE:
Jak ustawić domyślne pole Django na funkcję, która będzie oceniana za każdym razem, gdy zostanie utworzony nowy obiekt modelu?
Chcę zrobić coś podobnego do poniższego, z tym wyjątkiem, że w tym kodzie kod jest oceniany raz i ustawia domyślną tę samą datę dla każdego utworzonego obiektu modelu, zamiast oceniać kod za każdym razem, gdy obiekt modelu zostanie utworzony:
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))
ORYGINALNY:
Chcę utworzyć wartość domyślną dla parametru funkcji, tak aby był dynamiczny i był wywoływany i ustawiany za każdym razem, gdy wywoływana jest funkcja. Jak mogę to zrobić? na przykład.,
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
W szczególności chcę to zrobić w Django, np.
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))