Python 使用Django显示表单输入

Python 使用Django显示表单输入,python,django,forms,Python,Django,Forms,所以基本上我想做一个简单的表单,我可以输入文本,在我点击submit之后,看到文本 这是我的forms.py: class Search(forms.Form): search = forms.CharField() 以下是我的视图.py: def search(request): context = RequestContext(request) if request.method == 'POST': search = Search(

所以基本上我想做一个简单的表单,我可以输入文本,在我点击submit之后,看到文本

这是我的forms.py:

class Search(forms.Form):
        search = forms.CharField()  
以下是我的视图.py:

def search(request):
    context = RequestContext(request) 

    if request.method == 'POST':
        search = Search(data=request.POST)

        if search.is_valid():
             ticker = search.save()
             ticker.save()
             success = True

        else:
             print search.errors
    else:
        search = Search()       

    return render_to_response('ui/search.html', {"search":search},  context)   
这是您用来输入的html表单(我使用bootstrap进行样式设置):


{%csrf_令牌%}
提交
最后,我希望表单中输入的文本显示在“search.html”上,当前的显示方式如下:

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

{% block title %} search {% endblock %}

{% block body_block %}
<br>
<p>test</p>
{{ form.search.data }} <!--I'm pretty sure this is not correct -->
{% endblock %}     
{%extends'ui/base.html%}
{%block title%}搜索{%endblock%}
{%block body_block%}

试验

{{form.search.data} {%endblock%}

有人知道我怎么做吗?谢谢。

正如您所怀疑的,您的模板是错误的

它正在寻找一个名为“
form
”的上下文变量,但您给了它一个名为“
search
”的键的上下文字典

此外,“data”是用于构建
搜索
对象的参数(正确),但当您想从中提取用户输入时,应该使用字段名,并且需要对其调用
值()
,以获取绑定值。因此,要获取名为
search
的文本字段的内容,应该使用
search.search.value

试着换线

{{ form.search.data }}


您的表单名是
search

要使用现代django呈现值,需要调用字段的
value
方法,因此模板应如下所示:

{{ search.search.value }}

您不能在普通窗体上调用
save()
;你确定这就是你正在运行的代码吗?您还存在其他问题,因为并非所有执行路径都返回HttpResponse对象。你能确认这是否就是你正在运行的代码吗?我可以用.save()注释掉这两行代码,没有错误。但是我也没有得到我在表单中输入的内容,这正是我想要添加到模板中的理想内容。
{{ search.search.value }}
{{ search.search.value }}