0

こんにちは、次のようなフォームがあります。

class GraphForm(forms.Form):
    ...
    startdate = forms.DateField(
                label=ugettext_lazy('Start Date'),
                widget=forms.TextInput(attrs={"placeholder": 'YYYY-MM-DD'}),
                )
    enddate = forms.DateField(
                label=ugettext_lazy('End Date'),
                widget=forms.TextInput(attrs={"placeholder": 'YYYY-MM-DD'}),
                )
    ...

問題は、Djangos の国際化とローカリゼーションを使用して国際的なサイトで作業していることです。フォームは英語では正常に機能しますが、言語がスペイン語に切り替えられると、形式が原因で日付フィールドの検証が失敗します。言語の選択に関係なく、ローカライズをバイパスして同じ形式で検証する方法はありますか?

どんな助けでも大歓迎です。

4

1 に答える 1

1

答えは驚くほど簡単です。

date_format = '%Y-%m-%d' 

class GraphForm(forms.Form):
    ...
    startdate = forms.DateField(
            label=ugettext_lazy('Start Date'),
            widget=forms.TextInput(attrs={"placeholder": 'YYYY-MM-DD'}),
            input_formats=[date_format,],
            )
    enddate = forms.DateField(
            label=ugettext_lazy('End Date'),
            widget=forms.TextInput(attrs={"placeholder": 'YYYY-MM-DD'}),
            input_formats=[date_format,],
            )
    ...

これが他の誰かに役立つことを願っています。

于 2012-04-10T20:56:42.133 に答える