2

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

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

вот мое поле < django.forms.models.ModelChoiceField объекта на 0x96576cc >

Как я могу получить это для рендеринга нормально?

ответ

3

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

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

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

+0

Хорошо, я только что создал форму в своем представлении и передал ее шаблону. Работает как шарм. Благодарю. – trubliphone

Смежные вопросы