Django 中 UpdateView 上的日期格式更改
Posted
技术标签:
【中文标题】Django 中 UpdateView 上的日期格式更改【英文标题】:Date format changes on UpdateView in Django 【发布时间】: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
);
【问题讨论】:
删除日期选择器后格式是否正确? 问题依旧,没有变化 【参考方案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',否则会报错)以上是关于Django 中 UpdateView 上的日期格式更改的主要内容,如果未能解决你的问题,请参考以下文章
使用基于类的 UpdateView 在 Django 中更新用户模型
在 Django 中,如何在提交 CreateView 时重定向到 UpdateView?