2017-01-29 2 views
0

Ich bekomme diesen Fehler nach Umleitung auf ein Formular einreichen und ich verstehe nicht, warum es passiert, ich weiß, dass Beiträge über Dieses Thema fehlt nicht, aber nach dem Lesen von Dutzenden von ihnen kann ich dieses Problem immer noch nicht beheben.Reverse für 'url_name' mit Argumenten '()' und Schlüsselwortargumente '{}' nicht gefunden

Reverse for 'commenting_room_detail' with arguments '()' and keyword arguments '{}' not found. 
1 pattern(s) tried: ['room/(?P<gig>\\d+)/(?P<name>[-\\w\\d]+)/$'] 

Hier ist, was wie mein Code aussieht:

views.py

if request.method == 'POST': 
    form = MessageForm(request.POST) 
    if form.is_valid(): 
     save_it = form.save(commit=False) 
     ... 
     save_it.save() 
     return redirect(reverse('commenting_room_detail')) 

urls.py

url(r'^room/(?P<gig>\d+)/(?P<name>[-\w\d]+)/$', views.commenting_room, name='commenting_room_detail'), 

template/room.html

<form method="POST" action="{% url 'commenting_room_detail' room.gig.id request.user %}">...</form> 

Wenn mir jemand erklären könnte, warum dieser Fehler auf diesem speziellen Code erscheinen würde es mir helfen, für die nächste mal diesen gemeinsamen Fehler zu vermeiden, weil alles in Ordnung scheint, danke.


-Update hier änderte ich die URL Ziel wie unten auf den Antworten gezeigt:

return redirect(reverse('commenting_room_detail'), kwargs={'gig': room.gig.id, 'name': request.user}) 

ich immer noch diese Fehlermeldung erhalten, wenn das Problem das regex Muster Urls ist, wie kann ich dieses Problem lösen?

Reverse for 'commenting_room_detail' with arguments '()' and keyword arguments '{}' not found. 
1 pattern(s) tried: ['room/(?P<gig>\\d+)/(?P<name>[-\\w\\d]+)/$'] 
+1

Die 'kwargs' sollten in' reverse' gehen, nicht 'redirect' –

Antwort

1

Sie müssen die erforderlichen Schlüsselwort-Argumente für diese URL reverse Ihrer Ansicht nach Funktion zu übergeben, wie Sie in Ihrer Vorlage tat:

return redirect(reverse('commenting_room_detail', kwargs={...})) 
#             ^^^^^^ 
+0

' return redirect (umgekehrt ('commenting_room_detail', kwarts = {room.gig.id, request.user})) 'so? – Lindow

+0

'kwargs = {'gig': room.gig.id, 'name': request.user}' –

+0

Immer noch das gleiche Problem – Lindow

1

Hier arbeitet Beispiel:

# views.py 
class commenting_room(View): 
    pass 

# urls.py 
url(r'^room/(?P<gig>\d+)/(?P<name>[-\w\d]+)/$', views.commenting_room, name='commenting_room_detail'), 

# in code 

# NoReverseMatch: Reverse for 'commenting_room_detail' with arguments '()' and keyword arguments '{}' not found. 1 pattern(s) tried: ['room/(?P<gig>\\d+)/(?P<name>[-\\w\\d]+)/$'] 
reverse('commenting_room_detail') 

# success 
reverse('commenting_room_detail', kwargs={'gig': 123, 'name': 'test1'}) 

Dies ist Ihr Fehler:

Reverse for 'url_name' with arguments '()' and keyword arguments '{}' not found. 1 pattern(s) tried: ['room/(?P\d+)/(?P[-\w\d]+)/$']

Args Problem Fehler:

Reverse for 'commenting_room_detail' with arguments '()' and keyword arguments '{}' not found. 1 pattern(s) tried: ['room/(?P\d+)/(?P[-\w\d]+)/$']

Verdoppeln Sie Ihre URL-Muster überprüfen.

+0

Aktualisiert mein Beitrag können Sie einen Blick auf den Beitrag? Ich habe versucht, wie vorgeschlagen – Lindow

+0

Sie setzen Kwargs umleiten, aber Sie müssen sie umkehren. –

Verwandte Themen