Django DateInputウィジェットはプレーンテキスト入力以外のものを表示しません。しかし、さまざまなフォーマットに対してユーザーの入力を検証するので、無駄ではありません。
ほとんどの人は、Django Adminインターフェイスにある日付ピッカーと同じように動作すると予想していますので、間違いありません。
あなた自身のアプリでAdminDateWidgetを使用することは可能ですが、私はそれに対して助言します。それにはa lot of fiddling around to make it workが必要です。
最も簡単な解決策は、JQuery UI Datepickerのようなものを使用することです。単にあなたのページの<head>
に次のものがあります。
<link type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.6/themes/redmond/jquery-ui.css" rel="Stylesheet" />
<script language="javascript" type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.6/jquery-ui.min.js"></script>
次に一番下に、あなたの入力要素に日付ピッカーをアクティブにするために以下の行を置く:
<script type="text/javascript">
$(function(){
$("#id_birthday").datepicker();
});
</script>
あなたが、これはもう少しすることができますDRYあなたは、カスタムウィジェットを作成することによって、多くの日付フィールドを持っている場合は、あなたのforms.py
:
class JQueryUIDatepickerWidget(forms.DateInput):
def __init__(self, **kwargs):
super(forms.DateInput, self).__init__(attrs={"size":10, "class": "dateinput"}, **kwargs)
class Media:
css = {"all":("http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.6/themes/redmond/jquery-ui.css",)}
js = ("http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js",
"http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.6/jquery-ui.min.js",)
あなたのFで、このウィジェットを使用する必要があり、各日付フィールドを指定しますオームズ:
birthday = forms.DateField(label="Birthday", widget=JQueryUIDatepickerWidget)
そして、あなたのテンプレートでは、<head>
に次のものがあります。
{{form.media}}
し、ページの一番下に次のように置くことによって、すべてのフィールドの日付ピッカーをアクティブ:
<script type="text/javascript">
$(function(){
$(".dateinput").datepicker();
});
</script>
あなたは明確にできますか?フォーム全体がレンダリングされないのですか、またはDateTimeフィールドのみですか? – David
フォームと「入力」が表示されます。それはdoesntのカレンダーウィジェットです。 – Tom
私はDateInputウィジェットを読むと、あまりにもグラフィカルな日付ピッカーコントロール(django adminのようなもの)が期待されました。しかし、それは単純なテキストボックスだと思います。直感的ではないIMO。 – User