Django 如何在 url 模式中定义 kwargs


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

我正在使用上面的网址配置来存储以下网址:

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

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

首先,您必须修复缺少斜杠的 url 模式,如 @Evert 所指出的:

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

在您的模板中,您可以像完成的那样调用该 url 模式:

"{% 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 %}"

最新更新