为什么我的Django表单输入仅在单击提交按钮时才呈现?

时间:2018-08-16 16:08:26

标签: python django django-forms

我当前是第一次制作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),会有什么不同?

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您没有将表单传递给上下文。而是TemplateView使用FormView。它将对您更好。

检查FormView实现。

从django.views.generic.edit导入FormView

https://docs.djangoproject.com/en/2.1/ref/class-based-views/generic-editing/