【问题标题】:Date format changes on UpdateView in DjangoDjango 中 UpdateView 上的日期格式更改
【发布时间】:2018-03-14 14:44:51
【问题描述】:

我有一个表单来创建一个日期输入格式为“dd/mm/yyyy”的对象,当我提交表单时,它被保存没有任何问题,但是当我编辑这个对象时,日期显示为“ yyyy-mm-dd'。

settings.py

DATE_INPUT_FORMATS = ('%d/%m/%Y')

forms.py

class MyForm(forms.ModelForm):

    created_date = forms.DateField(input_formats=['%d/%m/%Y',],
    widget=forms.DateInput(attrs={'class':'datepicker form-control', 'placeholder':'Select a date'}), required=False)

models.py

created_date = models.DateField(blank=True, null=True, verbose_name="Created on")

views.py

class MyEdit(SuccessMessageMixin, UpdateView):
    model = MyModel
    form_class = MyForm
    template_name_suffix = '_edit'
    success_message = '...'

在我的模板中我使用

$(".datepicker").datepicker({
    format: 'dd/mm/yyyy',
    autoclose: true,
    changeYear: true,
    changeMonth: true
  });

【问题讨论】:

  • 删除日期选择器后格式是否正确?
  • 问题依旧,没有变化

标签: python django datetime datepicker


【解决方案1】:

请记住,字段负责验证,但它是负责显示值的小部件。所以你也需要在那里传递format

widget=forms.DateInput(attrs={'class':'datepicker form-control', 'placeholder':'Select a date'}), required=False, format='%d/%m/%Y')

【讨论】:

  • 感谢提示,我最后用widget=forms.DateInput(format='%d/%m/%Y', attrs={'class':'datepicker form-control', 'placeholder':'Select a date'}), required=False)(在DateInput括号内加上format='%d/%m/%Y',否则会报错)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-12-12
  • 2018-11-12
  • 2019-05-29
  • 2011-06-12
  • 1970-01-01
  • 1970-01-01
  • 2017-10-04
相关资源
最近更新 更多