簡體   English   中英

[u'以YYYY-MM-DD HH:MM [:ss [.uuuuuu]]格式輸入有效日期/時間的驗證錯誤。']

[英]ValidationError at [u'Enter a valid date/time in YYYY-MM-DD HH:MM[:ss[.uuuuuu]] format.']

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'}))

models.py

class Report(models.Model):
    user = models.ForeignKey(User, null=False)
    created_date_time = models.DateTimeField('Created')
    sent_date_time = models.DateTimeField('Sent')

在數據庫中,日期對象以YYYY-MM-DD HH:MM格式保存,並且在forms.py中使用,格式為dd/mm/yyyy 。如果我使用yyyy-mm-dd格式,則不會出現任何錯誤由於我在表格中使用了dd / mm / yyyy格式,因此我收到此驗證錯誤。我想知道如何處理此問題。

您應該在表單中使用DateField並配置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)

有關更多信息, 請參閱文檔


更好的是, 您可以在Django應用中啟用本地化 ,然后讓django自動為您使用正確的格式!

# settings.py
USE_L10N = True

# forms.py
class SearchFilterForm(Form):    
    fromdate = forms.DateField(localize=True)
    todate = forms.DateField(localize=True)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM