Python Django表单字段未显示

Python Django表单字段未显示,python,django,forms,Python,Django,Forms,我是django新手,尝试在html文件中显示表单,但当我在浏览器上看到这个特定页面时,我看不到字段 这是html文件:在这个文件中,除了显示two_factor.html的表单之外,我可以看到所有内容 {% extends 'authentication/base.html' %} {% block title %}Two Factor{% endblock title %} {% block two_factor %} <div class="container">

我是django新手,尝试在html文件中显示表单,但当我在浏览器上看到这个特定页面时,我看不到字段

这是html文件:在这个文件中,除了显示two_factor.html的表单之外,我可以看到所有内容

{% extends 'authentication/base.html' %}

{% block title %}Two Factor{% endblock title %}

{% block two_factor %}
    <div class="container">
    <h3>Your code</h3>
    <form role="form" action="" method="post" enctype="multipart/form-data">
        <div class="form-group">
            {% csrf_token %}
            {{ form }}
            <div class="form-group">
                <button type="submit" class="btn btn-success">Submit</button>
            </div>
        </div>
    </form>
</div>
{% endblock two_factor %}
我的观点

class TwoFactorView(View):
    form_class = TwoFactorForm
    template_name = 'authentication/two_factor.html'

    def get(self, request):
        form = self.form_class(None)
        return render(request, self.template_name, {'form': form})

    def post(self, request):
        form = self.form_class(request.POST)

        if form.is_valid():

            return redirect('authentication/secret.html')

        return render(request, self.template_name, {'form': form})

我在base.html中添加了块。我只看到按钮提交。URL很好。

将视图类更改为

class TwoFactorView(View):
 form_class = TwoFactorForm
 template_name = 'authentication/two_factor.html'

 def get(self, request):
    form = self.form_class()
    return render(request, self.template_name, {'form': form})

 def post(self, request):
    form = self.form_class(request.POST)

    if form.is_valid():

        return redirect('authentication/secret.html')

    return render(request, self.template_name, {'form': form})
而不是使用

form = self.form_class(None)
使用


在html代码的最后几行中,尝试替换

{% endblock two_factor %}
仅仅

{% endblock %}

我在这里看不到任何明显的东西。我知道你说URL是正确的,但是你能确认get和post方法被正确调用吗?例如,在那里放置
print
语句?或者甚至向render调用中添加另一个参数并在模板中输出。错误,请阅读文档:“为了提高可读性,您可以选择为
code
{%endblock%}标记指定一个名称”。因此,op的html代码是有效的。我的坏。。谢谢你的提醒。。不会再这样了。。谢谢你指出,顺便说一句…不是那样的。在通过render()从一个窗体转换到另一个窗体的过程中,不显示该窗体。但是表单在通过redirect()时显示。@Kepchyk:用户输入无效数据后表单不显示?无效数据表示在
post
中调用了
render
。你说的过渡是什么意思?
{% endblock two_factor %}
{% endblock %}