如果您有多种表格
from django import forms
class NameForm(forms.Form):
your_name = forms.CharField(label='Your name', max_length=100)
class SecondNameForm(forms.Form):
your_name = forms.CharField(label='Your name', max_length=100)
是否有一种方法可以在您的模板中确定form
内的context
是属于NameForm
还是SecondNameForm
我有一个自定义小部件,在其html中,它使用id=""
标识符(在整个html中应该是唯一的)。
我想将id分配给类似
的内容 id="{{form.name}}_{{field.val}}"
或
id="{{form.id}}_{{field.val}}"
或
其中{{form.name}}
和{{form.id}}
是与表单实例关联的某个值,而不是表单的内容。
答案 0 :(得分:2)
如果您为每个表单使用唯一的prefix
,则这些字段都将具有唯一ID。
form1 = NameForm(prefix='name')
form2 = SecondNameForm(prefix='second_name')
答案 1 :(得分:1)
在您看来,您可以执行form.__class__.__name__
但这不适用于模板,因为django模板无法识别以__
开头的变量
在您的情况下,最好的办法是简单地创建一个额外的上下文变量来标识表单名称
id="{{form_name}}_{{field.val}}"
答案 2 :(得分:0)
如果您正在处理表单,可以从模板中获取ID
{{form.instance.pk]}