可以在没有Django表单的情况下呈现Django表单字段吗?

时间:2016-05-05 12:20:06

标签: django

我有一个简单的HTML表单,我没有使用Django表单,但现在我想添加一个select。

选择最容易创建为Django ChoiceField(而不是通过循环等手动创建选择),但是,它似乎无法在没有绑定/创建的情况下正确呈现Django形式。 (由于渲染不正确,浏览器会显示<django.forms.widgets.Select object at 0x10e9a9d10>

有没有办法做到这一点?

1 个答案:

答案 0 :(得分:6)

你应该使用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})