Джанго Формы Набор Имя Формы - PullRequest
0 голосов
/ 27 июня 2019

Как мне установить имя формы с формой модели?

Это моя форма модели:

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

Я знаю, как установить атрибут имени поля в форме, есть также много примеров .

Но я действительно не мог найти то, как я могу установить собственное имя формы, не поле в форме , а именно собственный атрибут имени формы;в классе ModelForm.

В части html я буду использовать этот атрибут: https://www.w3schools.com/tags/att_form_name.asp

Мне нужно использовать атрибут html form name в моем шаблоне, но яНе удалось найти, как добавить этот атрибут в форму непосредственно в классе ModelForm.

Я пытался использовать init в классе ModelForm следующим образом:

def __init__(self, *args, **kwargs):
    super().__init__(*args, **kwargs)
    self.name = 'DetayFormu'

Но в части html, все еще формане имеет атрибута имени.

А также я знаю, да, я могу установить этот атрибут в своем шаблоне так:

<form method="post" name="DetayFormu">
  {% csrf_token %}
  {{ form|crispy }}
  <button type="submit" class="btn btn-primary">Sign in</button>
</form>

Но мне действительно интересно, как я могуустановить этот атрибут в классе ModelForm напрямую .

Как я могу это сделать?

1 Ответ

1 голос
/ 27 июня 2019

Просто используйте вспомогательный атрибут для добавления новых атрибутов

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']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...