2016-11-08 93 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]}