2015-12-16 107 views
4

我得到一個NoReverseMatch錯誤:NoReverseMatch簡單的Django查看

NoReverseMatch at /verfahrensverzeichnis/verzeichnis/320/ 

Reverse for 'verfahrenvorlage' with arguments '(320,)' and keyword arguments '{}' not found. 1 pattern(s) tried: ['verfahrensverzeichnis/verfahren/vorlage/(?P<pk>[\\d+])/add/$'] 

對於一個相當簡單的看法,我想不出什麼地方出了錯這裏。 你能幫我嗎?

url.py:

url(r'^verfahren/vorlage/(?P<pk>[\d+])/add/$', 
    views.verfahrenvorlage, 
    name='verfahrenvorlage', 
    ), 

view.py:

def verfahrenvorlage(request, pk): 

vorlagen = ProcedurTemplate.objects.all() 
kunde_pk = pk 

return render(request, 'verfahrensverzeichnis/vorlagen_auswahl.html', {'vorlagen': vorlagen, 'kunden_pk': kunde_pk}) 

從template.py:

   <tr> 
        <td> 
         <a href="{% url 'verfahrensverzeichnis:verfahrenvorlage' verfahrensverzeichnis.customer.pk %}">Verfahren hinzufügen</a> 
        </td> 
       </tr> 
+2

是否'R '^ verfahren/vorlage//添加/ $(P \ d +?)''工作.. – Sayse

回答

5

的問題是在你的正則表達式:

(?P<pk>[\d+]) 

在方括號中加入+表示您匹配「一位數或加號」,而不是「多位數字」。

應該

(?P<pk>[\d]+) 

或者,在這種情況下,你可以刪除的方括號。

(?P<pk>\d+) 
+1

右鍵 - 這工作。我現在調試了大約一個小時...謝謝! –