如何使用模型表单设置表单的名称?
这是我的模型表格:
class DetayModelForm(forms.ModelForm):
class Meta:
model = Detay
fields = [ 'yazi', 'tip', 'kullanimAdet']
我知道如何以表格的形式设置字段的名称属性,也有很多示例。
但是我真的真的找不到如何设置表单自己的名称,不是表单中的字段,正是表单自己的名称属性;在ModelForm类中。
在html端,我将使用以下属性:https://www.w3schools.com/tags/att_form_name.asp
我需要在模板中使用html表单 name 属性,但是我无法在ModelForm类中找到如何直接将此属性添加到表单中。
我试图在像这样的ModelForm类中使用init:
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.name = 'DetayFormu'
但是在html方面,表单仍然没有name属性。
我也知道,是的,我可以像这样在模板中设置此属性:
<form method="post" name="DetayFormu">
{% csrf_token %}
{{ form|crispy }}
<button type="submit" class="btn btn-primary">Sign in</button>
</form>
但是我真的很奇怪如何在ModelForm类中设置此属性 直接。
我该怎么做?
答案 0 :(得分:1)
只需使用辅助属性attr即可添加任何新属性
from crispy_forms.helper import FormHelper
class DetayModelForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
self.helper = FormHelper()
self.helper.form_action = 'url'
super(DetayModelForm, self).__init__(*args, **kwargs)
self.helper.attrs = {'name': 'DetayFormu','autocomplete':'off'}
class Meta:
model = Detay
fields = [ 'yazi', 'tip', 'kullanimAdet']