如何更改 Django 默认日期格式

问题描述 投票:0回答:2

我想将默认的 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()

python django django-views django-forms
2个回答
0
投票

要更改表单中的默认输入格式,您应该将

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 日期格式


0
投票

您可以通过创建字段并提及内联来修改日期格式

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__'
© www.soinside.com 2019 - 2024. All rights reserved.