Django 中 UpdateView 的日期格式更改

rob*_*s88 4 python django datetime datepicker

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

设置.py

DATE_INPUT_FORMATS = ('%d/%m/%Y')
Run Code Online (Sandbox Code Playgroud)

表格.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)
Run Code Online (Sandbox Code Playgroud)

模型.py

created_date = models.DateField(blank=True, null=True, verbose_name="Created on")
Run Code Online (Sandbox Code Playgroud)

视图.py

class MyEdit(SuccessMessageMixin, UpdateView):
    model = MyModel
    form_class = MyForm
    template_name_suffix = '_edit'
    success_message = '...'
Run Code Online (Sandbox Code Playgroud)

在我的模板中我使用

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

Dan*_*man 5

请记住,该字段负责验证,但负责显示值的是小部件。所以你也需要经过format那里:

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