my_form = MyForm()
В django есть встроенный способ рендеринга формы. Вы также можете получить рендеринг формы по умолчанию в виде, подобном этому:
my_form.as_p()
или
myform_as_table()
, чтобы вы могли расширить свой объект MyForm, чтобы иметь метод, который возвращает форму в виде html из данного экземпляра формы:
class MyForm(forms.ModelForm):
priority = forms.ChoiceField(
widget=forms.Select(attrs={'class': 'form-control','data-role':'select'}),
choices=((1,1), (2,2), (3,3), (4,4)),
required=True,
initial='3',
label=_('Priority'),
help_text=_("Please select a priority carefully. If unsure, leave it as '3'."),
)
due_date = forms.DateTimeField(
widget=forms.TextInput(attrs={'class': 'form-control','data-role':'datepicker'}),
required=False,
)
def getFormHtml(self):
return self.as_table()
конечно, это будет иметь смысл, только если вам нужен html формы вдругой взгляд.Если вам нужен html формы в шаблоне, вы можете получить форму в шаблоне, добавив {{my_form.as_table}}
в шаблон или визуализировать поля формы вручную в шаблоне