Djangoでビューからビューにパラメーターを渡したいのですが、最初に3つのパラメーターを渡したときは機能しますが、3つ以上のパラメーターを渡すと機能しなくなります。パラメータを渡すときに、次のエラーが発生しました:
NoReverseMatch at /detail/
Reverse for 'display_filter' with arguments '()' and keyword arguments '{'country': 'USA', 'street': 'Wall Street', 'continent': 'America', 'city': 'new York'}' not found.
urls.py
url(r'^detail/$', 'examples.views.detail'),
url(r'^display_filter/(?P<continent>[-\w]+)/(?P<country>[-\w]+)/(?P<city>[-\w]+)/(?P<street>[-\w]+)/$', 'examples.views.display_filter', name='display_filter'),
ビュー.py
def detail(request):
continents = Select_continent()
if request.method == 'POST':
continent = request.POST.get('combox1')
country = request.POST.get('combox2')
city = request.POST.get('combox3')
street = request.POST.get('combox4')
countries =Select_country(continent)
cities= Select_city(continent,country)
streets = Select_street(continent,country,city)
for row in continents :
if row[0]==int(continent) :
param1 =row[1]
for row in countries:
if row[0]==int(country):
param2=row[1]
for row in cities:
if row[0]==int(city):
param3=row[1]
for row in streets:
if row[0]==int(street):
param4=row[1]
url = reverse('display_filter', args=(), kwargs={'continent':param1,'country':param2,'city':param3,'street':param4})
return redirect(url)
return render(request, 'filter.html', {'items': continents,})
def display_filter(request,continent, country,city, street):
data = Select_WHERE(continent, country, city,street)
#symbol = ConvertSymbol(currency)
return render_to_response('filter.html', {'data': data, }, RequestContext(request))