2016-08-09 630 views
0

Ich habe einen Link zu Notiz Detailseite (s_note) auf der Benutzerseite (Benutzername). Solange ich keine Einträge (Notizen) in der Datenbank für den Benutzer habe, wird die Benutzerseite gut gerendert, aber sobald es eine gültige Notiz gibt, schlägt das Rendern mit dem obigen Fehler fehl und verweist auf ln: 6 von user.html.Reverse für 's_note' mit Argumenten '()' und Schlüsselwortargumente '{' note_t ':' note_1 opeth ',' user_name ':' opeth '}' nicht gefunden. 0 Muster (s) versucht: []

mein urls.py

from django.conf.urls import url 
from notes.models import User, Note 
from . import views 

app_name = 'notes' 
urlpatterns = [ 
    url(r'^$', views.index, name='u_index'), 

meine url url (r '^ Anmeldungen/$', views.signup, name = 'u_signup'),

url(r'^(?P<user_id>[\w\-]+)/$', views.user, name='username'), 
    url(r'^(?P<user_name>[\w\-]+)/(?P<note_t>[\w\-]+)/$', views.note, name='s_note'), 
url(r'^(?P<user_name>[\w\-]+)/(?P<note_t>[\w\-]+)/$', views.note, name='s_note') 
] 

meine Ansichten

def note(request, user_name, note_t): 
    nt = Note.objects.get(note_title=note_t) 
    return render (request, 'notes/detail.html', {'note': nt}) 

mein users.html

<h2>Hi! {{ user.user_n }} Your notes are here.</h2> 
{% if allnotes %} 
    <ul> 
    {% for note in allnotes %} 

     <li><a href="{% url 's_note' user_name=user.user_n note_t=note.note_title %}">{{ note.note_title }}</a></li> 
    {% endfor %} 
    </ul> 

{% else %} 
    <p>You have no notes yet!</p> 
{% endif %} 


<form method="post" action""> 
    <table> 
     {% csrf_token %} 
     {{ NForm }} 
    </table> 
    <input type="submit" value="Create"> 
</form> 
+0

Mögliches Duplikat von [Was ist ein NoReverseMatch-Fehler und wie behebe ich ihn?] (Http://StackOverflow.com/Questions/38390177/what-is-a-noreversematch-error-and-how-do- i-fix-it) – Sayse

+0

Bitte versuchen Sie nur relevanten Code in Ihre Beiträge einzubeziehen. – Sayse

+0

Sie haben 'app_name = 'notes'' in Ihrer urls.py, also müssen Sie den Namespace in der URL Tag:' {% url' Notizen: s_note '...%} ' – Alasdair

Antwort

2

Ihre URL passt nicht zu Unterstrichen oder Leerzeichen, die Ihr Keyword derzeit enthält.

url(r'^(?P<user_name>[\w\-]+)/(?P<note_t>[\w\-]+)/$', views.note, name='s_note'), 

sollte

url(r'^(?P<user_name>[\w\-]+)/(?P<note_t>[\w\-\_\s]+)/$', views.note, name='s_note'), 

sein, obwohl dies nicht viel von einer Lösung ist, da die meisten Räume in %20 ‚s drehen würden, sollten Sie versuchen, alle Leerzeichen aus Ihren Keywords zu entfernen und Ihre Regex entsprechend aktualisieren .

+0

Ich habe eine Problemumgehung durch hartes Codieren der URL in der Vorlage verwendet. Ich möchte jetzt noch über mein Problem sprechen. Und danke für die Regex-Korrektur. Vielen Dank. –

+0

@ZahirSwayambhoo - Das Duplikat, mit dem ich verlinkt habe, liefert viel mehr Details. – Sayse

0

Es war ein Problem, wie Namensräume @Alasdair beobachtet, es mit dem Bearbeiten sortiert -

'{% url 'notes:s_note'...%}' 

in der Vorlage.