无法使用Crispy Forms手动设置表单属性

时间:2015-11-26 01:00:22

标签: python django forms django-crispy-forms

我一直致力于使用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']

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

正如awwester评论的那样,问题是在crispy表单函数周围有一个硬编码<form>标记:

<form>
  {% crispy %}
</form>

基本上,crispy表单使用现有的表单标签,并没有创建我想要的新表单。