我当前是第一次制作Django表单,并且在呈现表单的文本输入时遇到了问题。我为表单使用了一个简单的模板,并在输入中附加了一个提交按钮。
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Submit</button>
</form>
我在views.py中使用了TemplateView
来命名模板并呈现表单:
class HomeView(TemplateView):
template_name = "WebApp/index.html"
def post(self, request):
form = HomeForms()
return render(
request,
self.template_name,
{
'form': form,
'title': 'Home',
}
)
我的forms.py当前看起来像这样:
from django import forms
class HomeForms(forms.Form):
post = forms.CharField()
此外,如果我使用def get(self, request)
而不是def post(self, request)
,会有什么不同?
任何帮助将不胜感激。
答案 0 :(得分:0)
您没有将表单传递给上下文。而是TemplateView使用FormView。它将对您更好。
检查FormView实现。
从django.views.generic.edit导入FormView
https://docs.djangoproject.com/en/2.1/ref/class-based-views/generic-editing/