2016-11-08 96 views
0

获取表单名称或ID如果您有多种形式Django的:从模板

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属于NameFormSecondNameForm

我有一个自定义小部件,在它的html中,它使用id=""标识符(它应该在整个html中是唯一的)。

我想要的ID分配给像

id="{{form.name}}_{{field.val}}"id="{{form.id}}_{{field.val}}"

其中{{form.name}}{{form.id}}与形式的实例,而不是形式的内容相关的一些价值。

回答

2

如果您使用的是独特的prefix每种形式额外的上下文变量,然后领域都将有唯一的ID。

form1 = NameForm(prefix='name') 
form2 = SecondNameForm(prefix='second_name') 
1

在你看来,你可以做form.__class__.__name__但这并不模板内工作,因为Django模板不承认与__

最好的事情开始在你的情况做的变量是简单地创建一个标识表单名称

id="{{form_name}}_{{field.val}}" 
0

如果您正在使用的形式工作,就可以从模板中获得的ID

{{form.instance.pk]}