Django:从模板中获取表单名称或ID

时间:2016-11-08 18:32:08

标签: django django-forms django-templates

如果您有多种表格

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}}是与表单实例关联的某个值,而不是表单的内容。

3 个答案:

答案 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]}