如何改变Django默认的日期格式

voj3qocg  于 2023-03-04  发布在  Go
关注(0)|答案(2)|浏览(152)

我想把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()
g2ieeal7

g2ieeal71#

要更改表单中的默认输入格式,您应该将DateInput widget传递到您的字段,同时传递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表单中的日期字段
这里是关于Django的日期格式

0ejtzxu1

0ejtzxu12#

您可以通过创建字段并提及内联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__'

相关问题