Ich rufe eine spezifische url
von und ajax
Funktion, die die jeweilige View-Funktion aufruft. In der View-Funktion möchte ich die Seite umleiten, indem ich eine andere Ansicht aufruft (weil ich nach einer Ajax-Anfrage nicht rendern kann).Django Reverse und Redirect nach Ajax-Anfrage zurück django.urls.exceptions.NoReverseMatch
Hier sind meine Urls:
urlpatterns = [
url(r'^$', views.search, name='search'),
url(r'^search_result/.+$', views.search_result, name='search_result'),
url(r'^new_search_result/$',
views.new_search_result,
kwargs={'selected': '', 'keyword': ''},
name='new_search_result')
]
Und hier ist die search_result
Ansicht:
@csrf_exempt
def search_result(request):
keyword = request.POST.get('keyword')
selected = request.POST.get('selected')
url = reverse('new_search_result',
kwargs={'keyword': keyword,
'selected': selected})
return HttpResponseRedirect(url)
# return render(request, 'SearchEngine/search_result.html', {'all_results': result})
Und hier ist die new_search_result
Ansicht:
def new_search_result(request, selected={}, keyword=''):
# code blocks
Aber in Konsul erhalte ich diese Fehler:
django.urls.exceptions.NoReverseMatch: Reverse for 'new_search_result' with keyword arguments '{'selected': '{"PANTHER":"ftp.pantherdb.org","Pasteur Insitute":"ftp.pasteur.fr","Rat Genome Database":"ftp.rgd.mcw.edu"}', 'keyword': 'dfasdf'}' not found. 1 pattern(s) tried: ['searchengine/new_search_result/$']
[22/Jul/2017 12:52:12] "POST /searchengine/search_result/dfasdf HTTP/1.1" 500 16814
Dank für die Klärung, also was soll ich tun, in diesem Fall passiert diese Variablen zu einer anderen Ansicht? – Mat
@Mat Ich habe die Antwort aktualisiert, um einen Weg einzuschließen, wie Sie erreichen könnten, was Sie versuchen zu tun. Es gibt wahrscheinlich andere Wege, und das Beste hängt von den Details ab, was Sie tun, aber hoffentlich reicht das, um Ihnen zu zeigen, wie dies im Allgemeinen erreicht wird. –