1. ホーム
  2. python

[解決済み] Django のフォームフィールドを隠しフィールドに変更する

2022-02-19 12:51:47

質問

Djangoのフォームに RegexField これは、通常のテキスト入力フィールドと非常によく似ています。

私の考えでは、特定の条件下では、ユーザーから非表示にし、できるだけ同じようなフォームを維持しようとしています。このフィールドを HiddenInput フィールドを使用することはできますか?

でフィールドに属性を設定できるのは知っています。

form['fieldname'].field.widget.attr['readonly'] = 'readonly'

で、目的の初期値を設定できる。

form.initial['fieldname'] = 'mydesiredvalue'

しかし、それではウィジェットの形は変わりません。

このフィールドを、(1) (2) (3) (4) (5) (6) (7) (8) (9) (10)のようにするための最良の方法/最もdjangoらしい方法/最も面倒でない方法は何でしょうか? <input type="hidden"> フィールドは?

解決方法は?

カスタムテンプレートとカスタムビューを使用している場合は、フィールドを除外して {{ modelform.instance.field }} を使用して値を取得します。

また、ビューで使用することもできます。

form.fields['field_name'].widget = forms.HiddenInput()

が、post時のsaveメソッドを保護するかどうかはわかりません。

お役に立てれば幸いです。