我需要以不同的格式显示表单=>“%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)
要自定义表单中使用的格式 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)