0

NoReverseMatch エラーが発生します。

Reverse for 'state' with arguments '('', '')' and keyword arguments '{}' not found.

テンプレートに渡される 2 つの ID があり、それが問題のようです。

ビュー.py

def state(request, country_id, state_id):
    countrystate = State.objects.all()
    return render_to_response("template.html", {'countrystate': countrystate}) 

urls.py

url(r'^my_index/(?P<country_id>\d+)/$', 'my_App.views.main', name='main'),
url(r'^my_index/(?P<country_id>\d+)/value/$', 'my_App.views.value', name='value'),
url(r'^my_index/(?P<country_id>\d+)/option/$', 'my_App.views.option', name='option'),
url(r'^my_index/(?P<country_id>\d+)/state/$', 'my_App.views.country', name='country'),
url(r'^my_index/(?P<country_id>\d+)/state/(?P<state_id>\d+)/$', 'my_App.views.state', name='state'),

template.html

{% load url from future %}
<form class="option_form" action="{% url "state" country.id state.id %}" method="post">

何か案は?

編集: 私が持っているのは、国と州のリストです。他のテンプレートでは、リストから国を選択し、その国から州を選択できます。それが私が今いる場所です。状態を選択した後、上記のテンプレートをレンダリングしようとしていますが、noreversematch が発生しています。state.id と country.ids は URL にあります。これは、country.id のみで問題なく実行できますが、country と state.id の両方では実行できません。

4

2 に答える 2

1

次のようなビューを試してください。

def state(request, country_id, state_id):
    my_state = State.objects.all()[0]
    my_country = Country.objects.all()[0]
    return render_to_response("template.html", {'state': my_state, 'country': my country })

上記の関数は無意味ですが、エラーを生成するべきではありません。

Webページの選択ツールを使用して国と州を定義している場合、

これはユーザーのブラウザに送られる前に評価されるため、機能しません。

フォームを機能させることができないと言っているのではなく、このアプローチが間違っているというだけです。

于 2013-08-21T01:28:25.993 に答える
0

パラメータを 1 つだけ使用する場合、my_App.views.country が使用されていますか? 最後の 2 つの URL の順序を逆にしてみてください...

url(r'^my_index/(?P<country_id>\d+)/state/(?P<state_id>\d+)/$', 'my_App.views.state', name='state'),
url(r'^my_index/(?P<country_id>\d+)/state/$', 'my_App.views.country', name='country'),
于 2013-08-20T23:58:26.580 に答える