Django - 表单验证后模板标签无法正常工作

时间:2016-10-06 17:19:38

标签: python django

我有一个表格,它取一些值作为输入,我正在处理输入并返回所需的输出。现在,当我尝试显示输出时,它不会显示在网页上。

以下是我的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 %}

在终端中,我可以在字典中获取outDataerrData,但它不会显示在网页中。可能是什么错误?请帮助。

1 个答案:

答案 0 :(得分:2)

你试图在没有意义的字符串上调用方法as_p

as_p()是表单实例上的辅助方法,可以更轻松地在模板中呈现它们,因此您需要:

{{ form.as_p }}

您还可以使用as_tableas_ul

您可以在documentation

中阅读更多内容