Django如何在url模式中定义kwargs

时间:2017-10-25 02:42:19

标签: django django-urls

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

我正在使用上面的url配置来关注url:

<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>

但这给了我一个错误,说找不到匹配的反向网址。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

首先你必须修复url模式,它缺少斜线,正如@Evert所指出的那样:

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

在您的模板中,您可以调用该网址模式:

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

重要的是myapp_app是命名空间,employee-create是url模式的名称。 从这里我们无法看到您是否指定了此命名空间。

对于employee_type=product_eng部分,重要的是变量product_eng实际存在于模板中并保留有意义的值。
您可以通过以下方式简化:

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