django - 将字段传递给模板

时间:2012-02-10 06:26:30

标签: django django-forms django-templates django-views django-models

我正在尝试编写一个简单的视图,它呈现我在任何形式之外创建的单个字段:

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;

如何正常渲染?

1 个答案:

答案 0 :(得分:3)

因为该字段不会在表单外呈现。因此,使用表单,它干净,易于理解,没有任何开销。

如果您想知道为什么没有呈现您的表单,您可以查看该字段的来源。它没有__unicode__方法。仅BoundField has it。因此,您需要使用表单来限制字段。

可能还有另外一种方法,但使用表格是最明星和最干净的。