特定のモデルに属するいくつかの要素を選択する必要があります。私はデフォルトに「Ctrl +クリック」自分をDjangoのフォームの入力を、しかし、チェックボックスのテーブルを作成を使用したくありません。私は、ウィジェットを定義することによりModelMultipleChoiceFieldを隠すそのためカスタム入力のテンプレートでModelMultipleChoiceFieldを非表示にする
:
field = forms.ModelMultipleChoiceField(..., widget=forms.MultipleHiddenInput())
は、その後、次のように私はテンプレートにフォーム要素を追加します。
<form method="POST" class="locklist-form" id="locklist-form">{% csrf_token %}
{{ form.field }}
</form>
この段階で、私は選択を期待しますHTMLページに追加する-option要素(非表示に)、私は要素のオプションに達するとJavaScriptでそれらを修正することができるように。ただし、HTMLページには何も追加されません。
私は、フォームfiedsの他のタイプと、このアプローチを使用しています。 TextField
のHTMLページには、次のように隠し要素があります。とは関係ないのはなぜですか?このフィールドの選択肢をJavascriptで変更するにはどうすればよいですか?
編集: MultipleHiddenInput renders only if with initial dataは同様の質問です。しかし、それを適用しても、期待される解決策には至りません。隠されたとして、この質問では、次のようにレンダリングすることが期待されます。 しかしとして、私は、フォームのコンストラクタを変更MultipleHiddenInput renders only if with initial data、以下:
form = MyForm(initial={'field':MyModel.objects.all()})
それを有用かもしれないが、期待されるものと正確には一致しない。私は、オブジェクトのリストの中から、いくつかのオプションを選択してマークする必要があります。