django - передать поле в шаблон - PullRequest
2 голосов
/ 10 февраля 2012

Я пытаюсь написать простое представление, которое отображает одно поле, которое я создаю вне любой формы:

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 он просто отображает следующий вид текста:

вот мое поле

Как сделать так, чтобы это нормально отображалось?

1 Ответ

3 голосов
/ 10 февраля 2012

Потому что поле не будет отображаться вне формы.Итак, используйте форму, она чиста, проста для понимания и не требует дополнительных затрат.

Если вы хотите узнать, почему именно ваша форма не отображается, вы можете посмотреть на источник поля,У него нет __unicode__ метода.Только BoundField имеет .Поэтому вам нужно использовать форму, чтобы ограничить поле.

Может быть, есть и другой способ, но использование формы - самый простой и понятный.

...