gpt4 book ai didi

python - 表单中的django DateTimeField(初始值)

转载 作者:行者123 更新时间:2023-11-30 22:40:38 26 4
gpt4 key购买 nike

我对 Django 表单中 DateTimeField 的初始值没有什么问题。

我在 forms.py 中有声明

class FaultForm(forms.ModelForm):
...
date_time = forms.DateTimeField(initial=datetime.now().strftime("%Y-%m-%d %H:%M:%S"), required=False)
...

我在 models.py 中有声明

class Fault(models.Model):
...
# date time
date_time = models.DateTimeField(default=datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
...

问题在于返回适当的时间。当我使用 forms.py 中的初始/默认日期时间向数据库添加一些对象时,每个对象的时间完全相同。

但是当我从模板添加带有日期时间的对象时,我对数据库中的每个对象都有良好的日期时间。

我必须告诉我的函数返回日期时间在这两种情况下是完全相同的,但也许问题在于生成表单?我们有相同的时间,因为我们生成一次表单,或者类似的东西?

我不知道该怎么办,因为我想使用表单中的初始值,而不必在模板中再次执行此操作。

有什么想法吗?漏洞??其他日期时间函数?还有其他方法可以解决这个小问题吗?

请帮助我:)

最佳答案

Django 模型字段在编译时进行评估。在上面的示例中,默认值被评估一次

要修复这个简单的问题,请将 default 参数指向可调用的:

def get_now():
return datetime.now().strftime("%Y-%m-%d %H:%M:%S")

class Fault(models.Model):
date_time = models.DateTimeField(default=get_now)

关于python - 表单中的django DateTimeField(初始值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42860141/

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