デフォルトでは、テンプレート内のフォームを識別することはできません。
あなたによると、dir(MyForm())
これらのオプションしかありません:
'files': '{}',
'is_bound': 'False',
'error_class': '<class 'django.forms.util.ErrorList'>',
'empty_permitted': 'False',
'fields': '{}',
'initial': '{}',
'label_suffix': ':',
'prefix': 'None',
'_changed_data': 'None',
'data': '{}',
'_errors': 'None',
'auto_id': 'id_%s',
この行でフォームのクラス名を確認できますが、これは「プライベート」(アンダースコアでわかります) であり、(残念ながら) テンプレートのフォームからアクセスすることはできません:
MyForm.__class__.__name__
したがって、テンプレートでフォームを識別するためのオプションがいくつかあります。その猫の皮を剥ぐ方法はたくさんあります。私が最近使用した非常に安価なソリューションを 1 つだけ紹介します。
フォーム.py
class MyForm(forms.Form):
my_form_name = "one" #add attr to form class
...
テンプレート
{{form.my_form_name}}
それほど賢くはありませんが、非常に堅牢です。
したがって、明らかに、ユースケースでは次のように言えます。
<a class="two"><input type="{% if form.my_form_name = "one" %}text{% else %}hidden{% endif %}"></a>