【问题标题】:django datepicker format changedjango datepicker 格式更改
【发布时间】:2021-11-25 13:49:07
【问题描述】:

我正在尝试将日期选择器格式从 mm/dd/yyyy 更改为 dd-mm-yyyy。到目前为止,我已将 settings.py 中的 DATE_INPUT_FORMATS 添加到 ['%d-%m-%Y'],但这并没有改变任何东西。我还根据site 中提出的解决方案通过 jquery 对其进行了更改,但它也没有帮助。

<script type="text/javascript">
    $(function () {
        $('#datepicker').datepicker({ dateFormat: 'dd-mm-yy' });
    });
</script>

这是一个微不足道的问题,但我似乎找不到解决方法。

forms.py

class Calendar(forms.DateInput):
    input_type = 'date'


    class AdForm(forms.ModelForm):
    
        time_limit = forms.DateInput(format=['%d-%m-%Y'])
    
        def __init__(self, *args, **kwargs):
            super().__init__(*args, **kwargs)
            self.fields['time_limit'].widget.attrs.update({'class': 'form-control mb-3 datepicker'})

    class Meta:
        model = Ad
        fields = ('time_limit')
        
        widgets = {
            'time_limit': Calendar(),
        }

结果还是这样:

【问题讨论】:

  • 您需要在您的应用中使用本地化吗?我问是因为当 USE_L10N = True 时日期格式会发生变化
  • 我不需要本地化,但是无论 USE_L10N = True/ False,datepicker 的结果都没有改变
  • 我不确定,但请在 settings.py 中试试这个:DATE_FORMAT = 'j N, Y'USE_L10N = False
  • 也没有效果
  • 我在答案中添加了一个应该可行的解决方案,让我知道它是否可行以及您是否需要更多详细信息

标签: django bootstrap-4 django-forms


【解决方案1】:

您可以自定义DATE_INPUT_FORMATS,在您的主项目目录下创建一个formats 文件夹,然后为您需要的每种语言添加一个自定义格式文件作为the official Django doc 中的描述器。

您可以查看如何自定义FORMAT_MODULE_PATH 以及(可编辑)可用格式here 的完整列表。

编辑英文格式的示例文件夹结构:

mysite/
    formats/
        __init__.py
        en/
            __init__.py
            formats.py

然后是formats.py

DATE_FORMAT = 'j N, Y'

settings.py 文件中

LANGUAGE_CODE = 'en-us'
USE_L10N = True
FORMAT_MODULE_PATH = [
    'my_app.formats',
]

【讨论】:

  • 没有任何改变。如果你尝试它会改变你吗?
  • 您可以尝试更改您的 USE_L10N 的值吗?使用 USE_L10N 设置为 True,语言环境格式具有更高的优先级
  • 我之前试过。没有任何效果。它会为你改变格式吗?
  • 是的,它在我的本地上工作,设置中有以下内容:LANGUAGE_CODE = 'en-us' USE_L10N = True FORMAT_MODULE_PATH = ['my_app.formats', ]。我将在答案中添加它,这里不可读。 PS:你能发布你的设置吗?
  • 我只是在模板中显示日期,没有使用输入表单。你是对的,实际上文档说“显示的日期格式将与实际值不同 - 显示的日期是根据用户浏览器的区域设置格式化的,但解析的值总是格式化为 yyyy-mm-dd。”。我在这里点击了你的链接developer.mozilla.org/en-US/docs/Web/HTML/Element/input/date
猜你喜欢
  • 2013-11-18
  • 2011-07-19
  • 2018-10-28
  • 1970-01-01
  • 1970-01-01
  • 2019-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多