ジャンゴのフォームからデータを取得する方法

Ischream:

私は、クライアントが検索バーに都市の名前を入力します天気アプリに取り組んでいます、と名前がAPIから気象データを得るために使用されます。フォームからの都市の名前を取得するには、私は、ビューでこの条件を作成しました:

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

しかし、印刷されたときに、このエラーが発生します。 'WSGIRequest' object has no attribute 'data'

何が私が間違っているのでしょうか?それともこれを行うには完全に別の方法は何ですか?

farhad:

あなたはこのようなテンプレートからデータを取得する必要があります:(views.py内の関数の名前はurl.py.と同じものです

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

データは、テンプレートにあなたのinputタグの名前です。

<input name='data'>

更新:あなたは、フォームのアクションを持っている必要があります。それはURLが含まれています。これは、このフォームのビュー機能にあなたを接続するURL。また、あなたはあなたのinputタグではないフォームタグに名前を追加する必要があります。

テンプレート:

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

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=392112&siteId=1