Как получить данные из формы в Django - PullRequest
0 голосов
/ 02 апреля 2020

Я работаю над погодным приложением, в котором клиент будет вводить название города в строке поиска, и это имя будет использоваться для получения данных о погоде из API. Чтобы получить название города из формы, я создал следующее условие:

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

, однако при печати возникает эта ошибка: 'WSGIRequest' object has no attribute 'data'

Что я делаю неправильно? Или есть совершенно другой способ сделать это?

1 Ответ

2 голосов
/ 02 апреля 2020

вы должны получить данные из шаблона следующим образом: (имя функции в views.py совпадает с названием url.py.

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

data - это имя вашего входного тега в шаблоне:

<input name='data'>

Обновление: вам нужно иметь действие для вашей формы. Она включает в себя URL-адрес. Этот URL-адрес соединяет вас с функцией просмотра этой формы. Также вы должны добавить имя к своему входному тегу, а не к тегу формы. .

template:

<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-адрес ::

url(r'^something', views.something, name='url_something'),
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...