2016-05-05 6 views
3

私はDjangoフォームを使用していない単純なHTMLフォームを持っていますが、今はselectを追加したいと思います。DjangoフォームフィールドをDjangoフォームなしでレンダリングできますか?

selectは、Django ChoiceFieldとして簡単に作成できます(ループなどで手動で選択を作成するのではなく)。ただし、Djangoフォーム内でバインド/作成されずに正しくレンダリングされないようです。 (正しく表示されないと、ブラウザに<django.forms.widgets.Select object at 0x10e9a9d10>が表示されます)

これを実行する方法はありますか?

+1

理由だけではなく、Djangoのフォームを使用しない?..あなたはまた、あなたがそれを正しくレンダリングしませについて何を意味するかを説明する必要があります(エラーが?)レンダリングに関する – Sayse

+0

追加したコメントを。これが可能であるか可能であるかのように思われるため、これが可能かどうかを知ることに関心があり、より単純な変更になる可能性があります。 –

答えて

4

Djangoフォームを使用する必要があります。しかし、あなたは本当にフォームを使用したくない場合。ビューでChoiceFieldからHTMLを生成し、htmlをテンプレートに渡すことができます。

from django.forms import fields 
my_choice = fields.ChoiceField(choices=((1, '1'), (2,'2'))) 
field_name = 'my_choice' 
field_value = 1 
my_choice_html = my_choice.widget.render(field_name, field_value) 
return render(request, 'template.html', {'my_choice': my_choice_html}) 
関連する問題