5

次のようなビューがあります。

def selectCity(request, the_city):
    request.session["ciudad"] = the_city
    city = request.session["ciudad"]
    return HttpResponse('Ciudad has been set' + ": " + city)

URL は次のようになります。

url(r'^set/$', views.selectCity, {'the_city': 'gye'}, name='ciudad'),

/set/ にアクセスすると、URL {'the_city': 'gye'} の dict の値からセッション変数が設定された適切な応答が得られます。

ここで、プログラムを変更して、別のテンプレート (index.html) から「ciudad」URL を呼び出し、適切なセッション変数を設定できるようにします。したがって、次のような追加の引数を指定して逆引き URL マッチングを使用して呼び出します。

  <div class="modal-body">
      <a tabindex="-1" href="{% url ciudad 'the_city':'uio' %}">Quito</a>
      <br/>
      <a tabindex="-1" href="{% url ciudad 'the_city':'gye' %}">Guayaquil</a>
  </div>

これを機能させるために、さまざまな方法で URL とビュー、および逆 URL 呼び出しを変更しようとしましたが、理解できないようです。いくつかの指針をいただければ幸いです。

4

2 に答える 2

12

urls.pyURL(in )にキャプチャグループがある場合は、urlタグで関連する引数を渡すことができます。

url(r'^set/(?P<the_city>\w+)/$', views.selectCity, {'the_city': 'gye'}, name='ciudad'),

次に、テンプレートで:

<a tabindex="-1" href="{% url ciudad the_city='gye' %}">Guayaquil</a>
于 2012-12-18T17:53:58.893 に答える
1

キャプチャされたパラメータを確認してください。このようなものが機能する可能性があります:

url(r'^set/$', views.selectCity, {'the_city': 'gye'}, name='ciudad'),
url(r'^set/(?P<the_city>\w+)/$', views.selectCity, name='ciudad'),
于 2012-12-18T17:52:25.393 に答える