2017-01-02 71 views
1

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

模板

{{ 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

回答

5

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

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

正确的定义应为:

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

views.py

从myappname.forms导入EntertainerCheckboxForm

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

template.html

{{myform}}