微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决你如何将 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 举报,一经查实,本站将立刻删除。