Django отображает объект формы, а не поля формы
Наверняка я упустил что-то очевидное, но любая помощь будет оценена по достоинству.
У меня есть модель формы:
class UserForm(forms.Form):
name = forms.CharField()
Вид:
def userform(req):
context = {}
context['user_form'] = UserForm()
context['message'] = 'test message'
return render(req, 'apps/userform.html', context)
И шаблон:
{% extends 'base.html' %}
{% block title %} | User Form {% endblock %}
{% block content %}
<h1>Form page</h1>
<form method='POST'>
{% csrf_token %}
{{ user_form }}
<button type='submit'>Send</button>
</form>
{{ message }}
{% endblock %}
Я уверен, что все подключено правильно и импортировано как нужно - свойство 'message' на контексте нормально отображается на форме.
Однако {{ user_form }}
в шаблоне отображает реальный экземпляр объекта Form, а не реальное поле формы, которое я ожидаю. Я вижу:
<userform.views.UserForm object at 0x7fcab17e5c10>
Затем кнопка отправки формы.
Что я пропустил?
Django 4, если это имеет значение.
Проблема заключалась в том, что у меня было представление на основе класса в файле views с тем же именем, что и класс Form - я полагаю, что оно инстанцировалось, а не класс Form. Закомментировал CBV, и все заработало.
Если бы я внимательнее смотрел на сообщение об ошибке, я бы, вероятно, увидел это раньше, поскольку инстанцированный объект явно находится в папке views, а не в папке forms...