我有django应用,我想拥有日期字段的初始数据
promoted_from = models.DateTimeField(blank=True, null=True)
promoted_to = models.DateTimeField(blank=True, null=True)
我需要时间00:00。
在这个应用程序中,我有get_initial方法:
def get_initial(self):
initial = super(BasePostEdit, self).get_initial()
get = self.request.GET
initial.update(get)
if initial.get("pub_date", None):
initial["pub_date"] = datetime.strptime(initial["pub_date"][0], "%d/%m/%Y")
return initial
但我想要另外两个字段promoted_from
和promoted_to
。我试着用这种方式,没有成功:
def get_initial(self):
initial = super(BasePostEdit, self).get_initial()
get = self.request.GET
initial.update(get)
if initial.get("pub_date", None):
initial["pub_date"] = datetime.strptime(initial["pub_date"][0], "%d/%m/%Y")
if initial.get("promoted_from", None):
initial["promoted_from"] = datetime.strptime(initial["promoted_from"][0], "%d/%m/%Y")
return initial
请寻求帮助/一些提示。
答案 0 :(得分:0)
您无需执行任何操作。您只需在字段本身上设置默认值:
promoted_from = models.DateTimeField(blank=True, null=True, default=datetime.datetime.now)
promoted_to = models.DateTimeField(blank=True, null=True, default=datetime.datetime.now)
修改强>
如果您需要自定义值,请使用callable作为默认值:
def midnight_today():
return datetime.datetime.combine(datetime.date.today(), datetime.time(0,0))
...
promoted_from = models.DateTimeField(blank=True, null=True, default=midnight_today)
请注意,它应该是独立的功能,而不是模型的方法。