所以基本上我想制作一个简单的表格,我可以输入文字,然后点击提交后,看到文字。
这是我的forms.py:
class Search(forms.Form):
search = forms.CharField()
这是我的views.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进行样式设置):
<form class="navbar-form navbar-right" role="search" action="/search/" method="post" name="tick">
{% csrf_token %}
<div class="form-group">
<input type="text" class="form-control" placeholder="Enter stock symbol">
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
最后,我希望表单中输入的文字显示在&#34; search.html&#34;目前看起来像这样:
{% 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 %}
任何人都知道如何做到这一点?感谢。
答案 0 :(得分:0)
您的模板错误,正如您所怀疑的那样。
它正在寻找一个名为“form
”的上下文变量,但您已经为它提供了一个带有名为“search
”的键的上下文字典。
此外,“data”是用于构建Search
对象(正确)的参数,但是当您想要从中提取用户的输入时,您应该使用字段名称,而不是需要在它们上面调用value()
才能获得绑定值。因此,要获取名为search
的文本字段的内容,您应该使用search.search.value
。
尝试更改行
{{ form.search.data }}
到
{{ search.search.value }}
答案 1 :(得分:0)
您的表单名称为search
。
要使用现代django呈现值,您需要调用字段的value
方法,因此您的模板应如下所示:
{{ search.search.value }}