你如何将 Django 日期选择器格式化为 ISO 8601?

问题描述

我们需要在整个 Django 站点中以 ISO 8601 (yyyy-mm-dd) 格式显示日期。我们从数据库获取的日期显示正确,但日期选择器没有显示

当我在 ubuntu 中运行 django 测试服务器时,日期选择器似乎使用操作系统设置的语言环境。当我在 Windows 中运行相同的代码时,它使用 dd/mm/yyyy。各种 input_formats 参数似乎以某种方式被覆盖,即使我已将它们设置在我能找到的任何地方。

无论客户端设置如何,是否可以强制日期选择器显示 yyyy-mm-dd?如果是这样,如何?

这是我们目前的代码

forms.py

...
class DateInput(forms.DateInput):
    input_type = "date"
    input_formats = ["%Y-%m-%d"]
    options = {
        "format": "%Y-%m-%d","autoclose": True
    }


class RegistrationForm(forms.Form):
    full_name = forms.CharField(max_length=255,required=True)
    preferred_name = forms.CharField(max_length=255,required=False)
    email = forms.EmailField(required=True)
    password = forms.CharField(
        max_length=255,required=True,widget=forms.PasswordInput,help_text=password_validation.password_validators_help_text_html(),)
    birth_date = forms.DateField(required=True,widget=DateInput,input_formats=["%Y-%m-%d"])
...

settings.py

...
LANGUAGE_CODE = "en-us"

TIME_ZONE = "UTC"

USE_I18N = True

USE_L10N = False

USE_TZ = True

DATE_INPUT_FORMATS = [
    '%Y-%m-%d'
]

DATETIME_INPUT_FORMATS = [
    '%Y-%m-%dT%H:%M:%s'
]

DATETIME_FORMAT = [
    '%Y-%m-%dT%H:%M:%s'
]
...

完整代码可在 GitHub 获得。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)