NoReverseMatch用于简单的Django View

Max*_*fer 4 python django

我得到NoReverseMatch错误:

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/$']
Run Code Online (Sandbox Code Playgroud)

对于一个相当简单的观点,我无法弄清楚这里出了什么问题.你能救我吗?

url.py:

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

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})
Run Code Online (Sandbox Code Playgroud)

来自template.py:

                <tr>
                    <td>
                        <a href="{% url 'verfahrensverzeichnis:verfahrenvorlage' verfahrensverzeichnis.customer.pk %}">Verfahren hinzufügen</a>
                    </td>
                </tr>
Run Code Online (Sandbox Code Playgroud)

Ala*_*air 5

问题在于你的正则表达式:

(?P<pk>[\d+])
Run Code Online (Sandbox Code Playgroud)

包括+在方括号中意味着您匹配"一位数或加号",而不是"多于一位".

它应该是

(?P<pk>[\d]+)
Run Code Online (Sandbox Code Playgroud)

或者,在这种情况下,您可以删除方括号.

(?P<pk>\d+)
Run Code Online (Sandbox Code Playgroud)