Django 1.10将表单对象传递给模板

时间:2017-01-02 15:38:36

标签: django django-forms

我想将自定义表单传递给模板文件。

模板

{{ form }} #  prints nothing

视图

class EntertainerDisplay(FormView):
    form_class = EntertainerCheckboxForm
    template_name = 'entertaining/custom_form.html'

表格

class EntertainerCheckboxForm(forms.Form):    
    class Meta:
        model = Entertainer
        fields = ['first_name',
                  'second_name',
                  'last_name'
                 ]

无论我做什么,form变量永远不会出现在View上下文中,因此不会发送到template file。如何将表单及其字段传递到form中的template file变量?

2 个答案:

答案 0 :(得分:5)

错误在EntertainerCheckboxForm定义中。它应该是forms.ModelForm的子类,而不是forms.Form

由于您已将EntertainerCheckboxForm定义为forms.Form的子类并且未手动添加任何表单字段,因此不会呈现任何表单字段,因为没有要呈现的字段。

正确的定义应如下:

class EntertainerCheckboxForm(forms.ModelForm):    
    class Meta:
        model = Entertainer
        fields = ['first_name', 'second_name', 'last_name']

答案 1 :(得分:0)

views.py

中 来自myappname.forms的

导入EntertainerCheckboxForm

def my_form_view
    myform = EntertainerCheckboxForm()
    return render(request,'path/to/your/template', {'myform': myform})

template.html

{{myform}}