Python Django表单字段未显示
我是django新手,尝试在html文件中显示表单,但当我在浏览器上看到这个特定页面时,我看不到字段 这是html文件:在这个文件中,除了显示two_factor.html的表单之外,我可以看到所有内容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">
{% 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 %}