我有一个表格,它取一些值作为输入,我正在处理输入并返回所需的输出。现在,当我尝试显示输出时,它不会显示在网页上。
以下是我的forms.py:
class CompForm(forms.ModelForm):
class Meta:
model = Comp
fields = ('inp',)
以下是我的views.py:
def index(request):
form = CompForm(request.POST or None)
context = {
'form': form,
}
print context
if form.is_valid():
...
...
outData = "The values you gave is correct"
errData = "The values you gave is incorrect"
print context
context['outData'] = outData
context['errData'] = errData
print context
return render(request, 'comp/index.html', context)
以下是我的index.html:
{% extends "comp/base.html" %}
{% load crispy_forms_tags %}
{% block content %}
<div class="row">
<div class="col-md-8 col-md-offset-2">
<form method="post" action="">
{% csrf_token %}
{{ form|crispy }}
<input class="btn btn-primary" type="submit" name="Submit" />
</form>
</div>
</div>
{% if outData %}
{{ outData.as_p }}
{% endif %}
{% if errData %}
{{ errData.as_p }}
{% endif %}
{% endblock %}
在终端中,我可以在字典中获取outData
和errData
,但它不会显示在网页中。可能是什么错误?请帮助。
答案 0 :(得分:2)
你试图在没有意义的字符串上调用方法as_p
。
as_p()
是表单实例上的辅助方法,可以更轻松地在模板中呈现它们,因此您需要:
{{ form.as_p }}
您还可以使用as_table
和as_ul
您可以在documentation
中阅读更多内容