2017-01-02 9 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変数はコンテキストには存在しないため、template fileには送信されません。どのようにしてtemplate fileの変数formにフォームとそのフィールドを渡すことができますか?

答えて

5

エラーがEntertainerCheckboxForm定義です。 forms.Formではなく、forms.ModelFormのサブクラスである必要があります。

forms.FormのサブクラスとしてEntertainerCheckboxFormを定義しているため、手動でフォームフィールドを追加していないため、レンダリングするフィールドがないためフォームフィールドは表示されません。

次のように正しい定義がなければならない:

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

views.py で:myappname.formsから

template.htmlでEntertainerCheckboxForm

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

をインポート:

{{myform}} 
関連する問題