我一直致力于使用Django 1.8.4和django-crispy-forms-1.5.2创建一个带有django-crispy-forms的模型表单。我没有改变表单标签属性。
我已尝试设置self.helper.form_tag = False
,但仍会生成<form>
标记。我尝试设置其他属性,例如form_action
,但这也不起作用,表单标记保持不变(最终HTML仍然只是<form>
)。
在views.py
:
class RegisterStudentView(CreateView):
template_name = "register_student.html"
model = Student
form_class = StudentRegistrationForm
def form_valid(self, form):
form.save()
return HttpResponseRedirect('dashboard')
在forms.py
:
class StudentRegistrationForm(ModelForm):
def __init__(self, *args, **kwargs):
super(StudentRegistrationForm, self).__init__(*args, **kwargs)
self.helper = FormHelper()
self.helper.form_tag = False
class Meta:
model = Student
exclude = ['is_active', 'is_overdue', 'personid', 'tertiary_cell']
非常感谢任何帮助。
答案 0 :(得分:2)
正如awwester评论的那样,问题是在crispy表单函数周围有一个硬编码<form>
标记:
<form>
{% crispy %}
</form>
基本上,crispy表单使用现有的表单标签,并没有创建我想要的新表单。