私のDjangoプロジェクトでは、1つのフォームでDateInputウィジェットを使用するための特定のフィールドを指定する通常のform.pyがあります。ブラウザで設定されたDjango DateInputデフォルト
これはうまくいきます - ページを参照すると、カレンダービューから日付をクリックして選択できる空の日付フィールドが表示されます。
ここでは、のコンピュータの現在の日付を使用しているユーザーのために自動入力したいと思います。サーバー側のデフォルト値ではなく、おそらくJavascriptなどで設定されたブラウザ側の値です。
どうすればいいですか?
<form action="/new_case/" method="post">
{% csrf_token %}
{{ form }}
<input type="submit" value="Submit" />
EDIT:JavaScriptを使用して支援するためのクロス派遣の蓋に巨大なおかげ
は、基本的にこれは私のフォームのテンプレートです。相続人1はjQueryの依存せずにDjangoのフォームテンプレートで使用するためにそれをラップする方法を、答えのこの種を探してここに来て、誰のために:
<script>
document.addEventListener("DOMContentLoaded", function(event) {
var dt = new Date();
var double_digit_day = ('0' + dt.getDate()).slice(-2);
var double_digit_month = ('0' + (dt.getMonth()+1)).slice(-2);
var currentDate = dt.getFullYear() + '-' + double_digit_month + '-' + double_digit_day;
document.getElementById('id_date').value = currentDate;
});
</script>
「日付」は、フィールドの名前になり
をフォームが基づいている元のモデル。シングルフォームのページ上の要素のidは、モデルの日付フィールドに 'date'という名前が付いていれば、単純に 'id_date'になります。
あなたはそれを行うにはJavaScriptを使用することができます。 –
はい、私は何とかできると確信しています。私は方法が分かりません。 Djangoは{{form}}の拡張を担当していますので、このコードをフォームのテンプレートに記述する必要があります。これは本質的に私が助けを望んでいるものです - 形式のためのこのJavascriptコードを含むようにフォームテンプレートを変更する方法 – qeadz
私の更新された答えをチェックしてください。 'toISOString()'は、ローカル日付ではなく、UTC日付を返します。正しいローカル日付を取得することは、より冗長な方法です。 –