Ind*_*sha 5 django django-models
我正在尝试将日期字段的默认值设置为相对于今天的未来日期。但是,当我将其设置如下时,它给了我以下警告。
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`
Run Code Online (Sandbox Code Playgroud)
与以下代码相同的警告。
return_date = models.DateField(default=(date.today() + timedelta(days=1)))
Run Code Online (Sandbox Code Playgroud)
这样做的正确方法是什么?
谢谢。
你给它一个固定的时间(因为你正在调用 timezone.now() 所以它的返回值将是默认值)你应该将函数传递给默认值而不调用它,像这样
def return_date_time():
now = timezone.now()
return now + timedelta(days=1)
Run Code Online (Sandbox Code Playgroud)
在你的领域:
return_date = models.DateField(default=return_date_time)
### dont call it, so it will be evaluated by djanog when creating an instance
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6558 次 |
| 最近记录: |