Django表单字段没有显示
问题描述:
我是django的新手,试图在html文件中显示一个表单,而当我在浏览器中查看这个特定页面时,我没有看到字段。Django表单字段没有显示
下面是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 %}
我forms.py
class TwoFactorForm(forms.Form):
code = forms.CharField(label='Code', widget=forms.TextInput(attrs={'type': 'text', 'placeholder': 'Your code'}))
我views.py
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中添加了块。我只看到按钮提交。网址都很好。
答
在你的HTML代码的最后行视图类
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})
相反的,去替代,
{% endblock two_factor %}
只是
{% endblock %}
我在这里看不到任何明显的东西。我知道你说URL是正确的,但是你能否确认get和post方法是否被正确调用,例如通过在那里放置'print'语句?甚至可以向渲染调用添加另一个参数并将其输出到模板中。 –