如何在Django中从表单检索数据

时间:2020-04-02 15:13:40

标签: django

我正在开发一个天气应用程序,客户端将在搜索栏中输入城市名称,该名称将用于从API获取天气数据。为了从表单中获取城市名称,我在视图中创建了以下条件:

if request.method == 'POST':
        city = request.data
        print(city)

但是在打印时,会发生此错误:'WSGIRequest' object has no attribute 'data'

我在做什么错?还是有完全不同的方式来做到这一点?

1 个答案:

答案 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'),