我正在尝试编写一个简单的视图,它呈现我在任何形式之外创建的单个字段:
field = ModelChoiceField(queryset=MyModel.objects.all(),empty_label=None)
template = Template("<div>here is my field: {{field}}</div>")
context = Context({"field" : field})
return HttpResponse(template.render(context));
(这将构成JQuery对话框的内容;我通过AJAX访问此视图。)但是,它不是呈现ModelChoiceField,而是显示以下类型的文本:
这是我的字段&lt; django.forms.models.ModelChoiceField对象at at 0x96576cc&GT;
如何正常渲染?
答案 0 :(得分:3)
因为该字段不会在表单外呈现。因此,使用表单,它干净,易于理解,没有任何开销。
如果您想知道为什么没有呈现您的表单,您可以查看该字段的来源。它没有__unicode__
方法。仅BoundField
has it。因此,您需要使用表单来限制字段。
可能还有另外一种方法,但使用表格是最明星和最干净的。