gpt4 book ai didi

python - Django DateField 的默认值格式

转载 作者:行者123 更新时间:2023-12-05 03:04:37 25 4
gpt4 key购买 nike

我正在尝试在 Django 模型中指定默认日期,例如:

from datetime import date

class A(models.Model):
date = models.DateField(default=date.today())

这有效,我可以在 ModelForm 中看到默认日期,但是当我将表单 input_format 更改为 %d-%m-%Y 时,默认日期从未出现在现场。

我也试过:

from datetime import date

class A(models.Model):
date = models.DateField(default=date.today().strftime('%d-%m-%Y'))

这也行不通。谁能帮帮我?

最佳答案

这里有两个问题:

  1. DateField(default=today.today())工作,从那时起将急切评估函数,然后因此默认值是该函数调用的结果。因此,在构造新对象时,默认值计算,因此最终会有所不同;和
  2. DateField 的表示。现在,模型指定表示,它仅指定如何存储数据库中的值,并在模型上定义函数。

我们可以通过将引用 传递给today 函数来解决第一个问题,例如:

from datetime import date

class A(models.Model):
date = models.DateField(default=<b>date.today</b>) # no ()

至于表示,您应该在模板中指定格式,例如 date template filter [Django-doc] ,比如:

<!--  template.html -->
{{ some_a.date<b>|date:'d-m-Y'</b> }}

或者在一个表单中:

# app/forms.py

class AForm(ModelForm):
date = DateField(<b>input_formats=['%d-%m-%Y']</b>)
class Meta:
model = A

关于python - Django DateField 的默认值格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52727837/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com