我正在尝试将Date字段的默认值设置为相对于今天的将来日期。但是,当我将其设置如下时,它会给我以下警告。
return_date = models.DateField(default=(timezone.now() + timedelta(days=1)))
booking.Booking.return_date: (fields.W161) Fixed default value provided.
HINT: It seems you set a fixed date / time / datetime value as default for
this field. This may not be what you want. If you want to have the
current date as default, use `django.utils.timezone.now`
与以下代码相同的警告。
return_date = models.DateField(default=(date.today() + timedelta(days=1)))
正确的方法是什么?
谢谢。
您给它一个固定的时间(因为您正在调用timezone.now(),所以它的返回值将是默认值),您应该将函数传递给默认值而不用调用它,就像这样
def return_date_time():
now = timezone.now()
return now + timedelta(days=1)
在您的领域:
return_date = models.DateField(default=return_date_time)
### dont call it, so it will be evaluated by djanog when creating an instance
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句