我正在开发一个天气应用程序,客户端将在搜索栏中输入城市名称,该名称将用于从API获取天气数据。为了从表单中获取城市名称,我在视图中创建了以下条件:
if request.method == 'POST':
city = request.data
print(city)
但是在打印时,会发生此错误:'WSGIRequest' object has no attribute 'data'
我在做什么错?还是有完全不同的方式来做到这一点?
答案 0 :(得分:2)
您必须像这样从模板获取数据:(views.py中的函数名称与url.py中的函数名称相同。
def something(request):
if request.method == 'POST':
city = request.POST.get('data')
print(city)
data是模板中输入标签的名称:
<input name='data'>
更新: 您需要对表单采取措施。它包含一个URL。此网址可将您连接到此表单的查看功能。 另外,您还必须在输入标签(而不是表单标签)中添加名称。
模板:
<form method="POST" action = "{% url "url_something" %}" >{% csrf_token %}
<div class="field has-addons">
<div class="control is-expanded">
<input class="input" type="text" placeholder="City Name" name="data" >
</div>
<div class="control">
<button class="button is-info" type="submit">
Search City
</button>
</div>
</div>
</form>
在url.py中,您必须具有这样的网址:
url(r'^something', views.something, name='url_something'),