2016-05-18 14 views
1

私はDjangoを使ってブログを作っています。私はユーザーが日付で検索できるようにしたい。私はこれを行うとDjangoフォームはHTML入力タグのように動作します

<input type = "date"> 

は、入力が引っ張る入力ボックスの右側にある素敵な小さなボタンがあります:私はforms.pyファイルを使用してに切り替え前に、私はこれを含むフォームを使用していましたプレマイドカレンダーを作成する。しかし、私のフォームがforms.pyファイルのこのコードから出てくるとき:

class Query(forms.Form): 
blog_author = forms.ChoiceField(choices = AUTHOR_NAME_CHOICES, label = "Author", required = False) 
blog_date = forms.DateField(label = "Publish Date", required = False) 

これはうまくいきますが、私はカレンダーのHTML構造を失います。それをどうやって元に戻すことができますか?それは参考のために、search.htmlのページのテンプレートに入ってくるのはここ

です:

<form action = "/home/query/" method = "get"> 
    {% csrf_token %} 
    {{ form.as_table }} 
<input type = "submit" value = "Find"> 

答えて

0

私はOPを取得する方法を求めていると思います

<input type="date">

html5ビルトインフォーム機能プレイ

にあなたは使用することができます


    custom_date = forms.CharField(label=u'Pick Date', widget = forms.TextInput(attrs={'type': 'date', })) 

は、上記のあなたの形でHTML5のタイプ=「日付」出力をレンダリングします。

しかし、注意してください。

ブラウザには、このhtml5機能とは異なる、または存在しない実装があります。あなたはそれに頼るべきではなく、ブラウザ間のUIを保証するdjango関連の日付ピッカーまたはウィジェットを使用するべきです。

+0

ヘッドアップありがとう。以前はChromeとEdgeで仕事をしていたようですが、私は合理的にそれに自信がありますが、そのことを念頭に置いておきます。 –

+0

FFは動作しません。私の場合、JSのハックを使用するかhtml5フォームファクタに依存するのではなく、django.forms.extras.widgetsのSelectDateWidgetをmm/dd/yyyyまたはmm/yyyy形式のプレーンドロップダウンで使用します。シンプルで、壊れる可能性は低いです。 –

関連する問題