แก้ไข:
ฉันจะตั้งค่าเริ่มต้นของฟิลด์ Django เป็นฟังก์ชันที่ได้รับการประเมินทุกครั้งที่สร้างโมเดลอ็อบเจ็กต์ใหม่ได้อย่างไร
ฉันต้องการทำสิ่งต่อไปนี้ยกเว้นในรหัสนี้รหัสจะได้รับการประเมินครั้งเดียวและตั้งค่าเริ่มต้นเป็นวันที่เดียวกันสำหรับวัตถุแต่ละรุ่นที่สร้างขึ้นแทนที่จะประเมินรหัสทุกครั้งที่สร้างวัตถุแบบจำลอง:
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))
เดิม:
ฉันต้องการสร้างค่าเริ่มต้นสำหรับพารามิเตอร์ฟังก์ชันเพื่อให้เป็นแบบไดนามิกและได้รับการเรียกใช้และตั้งค่าทุกครั้งที่เรียกฟังก์ชัน ฉันจะทำเช่นนั้นได้อย่างไร? เช่น,
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
โดยเฉพาะฉันต้องการทำใน Django เช่น
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))