【问题标题】:Django Forms Set Name Of The FormDjango 表单设置表单的名称
【发布时间】:2019-11-09 09:34:37
【问题描述】:

如何设置表格名称与模型表格?

这是我的模型表格:

class DetayModelForm(forms.ModelForm):
  class Meta:
    model = Detay
    fields = [ 'yazi', 'tip', 'kullanimAdet']

我知道如何在表单中设置字段的名称属性,还有很多例子

但是我实在是找不到怎么设置表单自己的名字,不是表单中的字段,就是表单自己的name属性;在 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 类中设置此属性 直接

我该怎么做?

【问题讨论】:

    标签: html django forms django-forms attributes


    【解决方案1】:

    只需使用 helper 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']
    

    【讨论】:

      猜你喜欢
      • 2014-05-09
      • 1970-01-01
      • 2011-09-18
      • 1970-01-01
      • 1970-01-01
      • 2017-03-24
      • 2010-10-12
      • 2012-06-14
      • 1970-01-01
      相关资源
      最近更新 更多