2017-10-25 1 views
0
url(r'^employee/create/(?P<employee_type>[\w-]+)$', 
    staff_member_required(EmployeeCreateView.as_view()), 
    name='employee-create'), 

Ich bin mit dem oben url Config für folgende URL definieren:Django wie kwargs in einem URL-Muster

<a href="{% url "myapp_app:employee-create" employee_type=product_eng %}" class="button is-light is-outlined">Create Product Engineer</a> 
<a href="{% url "myapp_app:employee-create" employee_type=product_dev %}" class="button is-light is-outlined">Create Product Developer</a> 

Aber das gibt mir eine Fehlermeldung, passend zu Reverse-URL nicht gefunden wird. Wie kann ich dieses Problem beheben?

+1

Ihr Muster Hat endet mit '/' $ statt '$' einen Unterschied machen? – Evert

+2

Sind Sie sicher, dass 'product_eng' und' product_dev' nur Zeichen enthalten, die mit '[\ w-]' übereinstimmen? – Evert

+0

@Evert Wenn ich einen Schrägstrich hinzufüge, erscheint // in URL – Kalanamith

Antwort

1

Zuerst müssen Sie die URL-Muster beheben, die einen Schrägstrich fehlt, wie @Evert wies darauf hin:

r'^employee/create/(?P<employee_type>[\w-]+)/$' 

In Ihrer Vorlage, die Sie, dass die URL-Muster nennen können, wie Sie es getan haben:

Hier ist es wichtig, dass myapp_app der Namespace und employee-create der Name des URL-Musters ist. Von hier aus können wir nicht sehen, ob Sie diesen Namensraum angegeben haben.

Für den Teil employee_type=product_eng ist wichtig, dass die Variable product_eng tatsächlich in der Vorlage existiert und einen aussagekräftigen Wert enthält.
Sie können, dass nur durch das Schreiben vereinfachen:

"{% url "myapp_app:employee-create" product_eng %}"