概要
- Djangoのテンプレートで、hiddenのフィールドは項目名も表示しないようにしたい
- 入力欄を
as_hidden
で出力すると、項目名は出てしまう。
- テンプレートでフィールドを出力する際、直書きせずにfor文で回して取得している場合を想定
is_hidden
メソッドを使って判定する
forms.py
class BuyerUserSignupForm(SignupForm):
userType = forms.IntegerField(initial="1", widget=forms.HiddenInput)
template
{% for field in form %}
<div class="field">
{% if not field.is_hidden %}
{# 通常フィールドはラベルと入力枠を出力 #}
{{ field.label_tag }}
{{ field }}
{% if field.help_text %}
<span class="helptext">{{ field.help_text }}</span>
{% endif %}
{% else %}
{# hidden属性で出力 #}
{{ field.as_hidden }}
{% endif %}
{% for error in field.errors %}
{{error}}
{% endfor %}
</div>
{% endfor %}
参考