Mon*_*k L 2 django django-templates django-models django-forms django-views
forms.py
class SearchFilterForm(Form):
fromdate = forms.CharField(widget=forms.TextInput(attrs={'placeholder': 'dd/mm/yy','class':'datefield','readonly':'readonly'}))
todate = forms.CharField(widget=forms.TextInput(attrs={'placeholder': 'dd/mm/yy','class':'datefield','readonly':'readonly'}))
Run Code Online (Sandbox Code Playgroud)
models.py
class Report(models.Model):
user = models.ForeignKey(User, null=False)
created_date_time = models.DateTimeField('Created')
sent_date_time = models.DateTimeField('Sent')
Run Code Online (Sandbox Code Playgroud)
在数据库中,日期对象以这种格式保存,YYYY-MM-DD HH:MM我在forms.py中使用,格式是dd/mm/yyyy.如果我在表单中使用yyyy-mm-dd格式,我没有收到任何错误.因为我使用了dd/mm/yyyy格式表单我收到此验证错误.我想知道如何处理这个问题.
您应该DateField在表单中使用a 并配置input_formats为支持您要使用的格式:
ACCEPTABLE_FORMATS = ['%d-%m-%Y', # '25-10-2006'
'%d/%m/%Y', # '25/10/2006'
'%d/%m/%y'] # '25/10/06'
# Add your own at will, but be mindful of collisions.
class SearchFilterForm(Form):
fromdate = forms.DateField(input_formats=ACCEPTABLE_FORMATS)
todate = forms.DateField(input_formats=ACCEPTABLE_FORMATS)
Run Code Online (Sandbox Code Playgroud)
更好的是,您可以在Django应用程序中启用本地化,让django自动为您使用正确的格式!
# settings.py
USE_L10N = True
# forms.py
class SearchFilterForm(Form):
fromdate = forms.DateField(localize=True)
todate = forms.DateField(localize=True)
Run Code Online (Sandbox Code Playgroud)