我想将默认的 Django 日期格式从年-日-月更改为日-月-年格式
我尝试在 settings.Py 文件中添加 DATE_INPUT_FORMATS=[‘%d.%m.%Y] 但在使用表单时更改仍然没有反映
这里是我的form.py文件代码
class PersonalDetailForm(ModelForm):
class Meta:
model=PersonalDetail
fields='__all__'
这里是观点:
def regForm(request):
form = PersonalDetailForm()
if request.method == 'POST':
form = PersonalDetailForm(request.POST)
if form.is_valid():
form.save()
# return redirect('/')
return HttpResponseRedirect(reverse('staff:staffhome'))
context = {'form': form}
return render(request, 'ems/regform.html', context)
这是模型
class PersonalDetail(models.Model):
staff_no = models.IntegerField()
surname = models.CharField(max_length=300)
firstname = models.CharField(max_length=300)
middlename = models.CharField(max_length=300)
title = models.CharField(max_length=300)
gender = models.CharField(max_length=300)
date_of_birth = models.DateField()
email = models.EmailField(max_length=300)
phone_number = models.IntegerField()
要更改表单中的默认输入格式,您应该将
DateInput
小部件传递给您的字段以及 input_formats
kwarg。例如:
from django import forms
class PersonalDetailForm(forms.Form):
date_of_birth = forms.DateField(
widget=forms.DateInput(format='%d.%m.%Y'),
input_formats=['%d.%m.%Y']
)
或者以防万一
ModelForm
from django import forms
from .models import PersonalDetail
class PersonalDetailForm(forms.ModelForm):
date_of_birth = forms.DateField(
widget=forms.DateInput(format='%d.%m.%Y'),
input_formats=['%d.%m.%Y']
)
class Meta:
model = PersonalDetail
fields = '__all__'
您可以在此处阅读有关 DateField 的更多信息:Django DateField in forms
这里是关于一般的日期格式Django 日期格式
您可以通过创建字段并提及内联来修改日期格式
widget
所以:
from django import forms
from .models import PersonalDetail
class PersonalDetailForm(forms.ModelForm):
date_of_birth = forms.DateField(
widget=forms.DateInput(format='%d-%m-%Y'),
input_formats=['%d-%m-%Y']
)
class Meta:
model = PersonalDetail
fields = '__all__'