如何更改表单字段中的日期格式 Django

Jua*_*ade 2 django date

我需要以不同的格式显示表单=>“%d%m%Y”。我尝试了一切,但没有任何效果。

在我的 forms.py 中

class DateInput(forms.DateInput):
    input_type = 'date'

class VendaForm(forms.ModelForm):
    class Meta():
        model = Venda
        exclude = ['acertado', 'status', 'viagem', 'paid',]
        widgets = {
            'sale_date': DateInput(),
            'expiration_date': DateInput(),
        }
Run Code Online (Sandbox Code Playgroud)

Abd*_*kat 6

要自定义表单中使用的格式 a,DateField我们可以在字段上设置input_formatskwarg [Django docs],该字段是用于解析用户输入的日期的格式列表,并在小部件上设置formatkwarg [Django docs]这是字段初始值的显示格式。

如果我们不提供这些参数,则使用的格式来自设置DATE_INPUT_FORMATS[Django docs](对于小部件,使用此列表中的第一个格式),因此如果我们希望项目中的所有日期字段都使用它,我们也可以更改此设置。

要专门设置字段的格式,您的代码将类似于:

class VendaForm(forms.ModelForm):
    sale_date = forms.DateField(
        widget=forms.DateInput(format='%d%m%Y'),
        input_formats=['%d%m%Y']
    ) # Perhaps you should consider a separator in this format i.e. `%d-%m-%Y` instead of `%d%m%Y`
    expiration_date = forms.DateField(
        widget=forms.DateInput(format='%d%m%Y'),
        input_formats=['%d%m%Y']
    )
    class Meta():
        model = Venda
        exclude = ['acertado', 'status', 'viagem', 'paid',]
Run Code Online (Sandbox Code Playgroud)