相关疑难解决方法(0)

如何将Django模型字段的默认值设置为函数调用/可调用(例如,相对于模型对象创建时间的日期)

编辑:

如何将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))
Run Code Online (Sandbox Code Playgroud)



原版的:

我想为函数参数创建一个默认值,使其成为动态的,并在每次调用函数时调用和设置.我怎样才能做到这一点?例如,

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
Run Code Online (Sandbox Code Playgroud)

具体来说,我想在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))
Run Code Online (Sandbox Code Playgroud)

django parameters lambda default django-models

88
推荐指数
4
解决办法
6万
查看次数

标签 统计

default ×1

django ×1

django-models ×1

lambda ×1

parameters ×1