【问题标题】:initial time in Django form does not updateDjango 表单中的初始时间不更新
【发布时间】:2018-12-31 02:50:48
【问题描述】:

我在 Django 表单中有一个这样的类

class DateForm(forms.Form):
to_date = forms.DateTimeField(
    label='To Date',
    input_formats=[settings.API_DATEFORMAT],
    widget=forms.DateTimeInput(
        attrs={
            'placeholder': 'yyyy-mm-ddThh:mm:ss',
            'class': 'form-control',
        }
    ),
    required=True,
    initial=datetime.now().strftime('%Y-%m-%dT%H:%M:%S.%fZ'),
)

但是,当我在 Django 视图中使用此表单时,初始时间并未更新。看起来服务器启动的时间被缓存了。有什么建议可以解决这个问题吗?

【问题讨论】:

    标签: python django python-3.x python-2.7 django-forms


    【解决方案1】:

    是的,你不应该那样做。您应该将初始值作为可调用对象传递;在这里,您可以使用不带括号的datetime.now。您根本不需要将其传递给strftime;该字段已经负责将日期时间转换为预期格式的字符串。

    【讨论】:

    • 但是,当我只使用 datetime.now 时,该字段被识别为 builtin_function_or_method 而不是字符串
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-12
    • 2013-02-22
    • 2013-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    相关资源
    最近更新 更多