如何在中扩展现有的输入格式表单.日期时间场?

2024-09-21 01:05:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我想为DateTimeField添加自定义输入格式。是否可以添加自定义输入而不硬编码默认输入?你知道吗

class CustomForm(forms.Form):
    updated = forms.DateTimeField(input_formats=['%Y-%m-%dT%H:%M:%S.%fZ'])

我想添加上面的选项,但此解决方案看起来不太好:

class CustomForm(forms.Form):
    updated = forms.DateTimeField(input_formats=['%Y-%m-%dT%H:%M:%S.%fZ',
                                                 '%Y-%m-%d %H:%M:%S',
                                                 '%Y-%m-%d %H:%M',
                                                 '%Y-%m-%d',
                                                 '%m/%d/%Y %H:%M:%S',
                                                 '%m/%d/%Y %H:%M',
                                                 '%m/%d/%Y',
                                                 '%m/%d/%y %H:%M:%S',
                                                 '%m/%d/%y %H:%M',
                                                 '%m/%d/%y'])

Tags: form编码input格式选项forms解决方案class
1条回答
网友
1楼 · 发布于 2024-09-21 01:05:55

你知道吗表格。表格通过调用formats.get_format_lazy('DATETIME_INPUT_FORMATS')获取其DateTimeField输入格式。您可以调用此函数并附加格式:

from django.utils import formats

class CustomForm(forms.Form):
    my_new_format = '%Y-%m-%dT%H:%M:%S.%fZ'
    updated = forms.DateTimeField(
            input_formats=formats.get_format_lazy(
                'DATETIME_INPUT_FORMATS').append(my_new_format)

它不是很漂亮,但至少如果默认格式被更改、添加等,它就不需要更新了。可能更好一点。你知道吗

要更深入地了解DateTimeField的工作方式,可以查看django site packages目录中的django/forms/fields.py。你知道吗

相关问题 更多 >

    热门问题