Django 相同的url模式,具有不同的网络视图和名称
我的代码在下面 模板看起来像这样Django 相同的url模式,具有不同的网络视图和名称,django,Django,我的代码在下面 模板看起来像这样 <td><button><a href="{% url 'testschema' allschema.schema_name %}"> Test</a></button></td> <td><button><a href="{% url 'deleteschema' allschema.schema_name %}"> Delete</
<td><button><a href="{% url 'testschema' allschema.schema_name %}"> Test</a></button></td>
<td><button><a href="{% url 'deleteschema' allschema.schema_name %}"> Delete</a></button></td>
每当我点击Testbutton时,它实际上调用了delete函数
知道为什么会发生这种情况吗,因为我使用了命名url参数
提前感谢url将始终匹配第二个
路径(..)
,因为以te
开头的每个字符串都是一个字符串。因此,您最好使URL不重叠,因为与第二个路径(…)
匹配的URL不能与第三个路径(…)
匹配。无论{%URL'testschema'allschema.schema_name%}
因此生成什么URL,如果浏览器发送带有该URL的请求,它将由第二个路径(…)
匹配
例如:
urlpatterns = [
path('<int:id>/', views.confighome, name='config'),
path('de<str:schmid>/', views.deleteschema, name='deleteschema'),
path('te<str:schmid>/', views.testschema, name='testschema')
]
urlpatterns=[
路径('/',views.confighome,name='config'),
路径('de/',views.deleteschema,name='deleteschema'),
路径('te/',views.testschema,name='testschema')
]
或者更方便:
urlpatterns = [
path('<int:id>/', views.confighome, name='config'),
path('<str:schmid>/delete/', views.deleteschema, name='deleteschema'),
path('<str:schmid>/test/', views.testschema, name='testschema')
]
urlpatterns=[
路径('/',views.confighome,name='config'),
路径('/delete/',views.deleteschema,name='deleteschema'),
路径('/test/',views.testschema,name='testschema')
]
url将始终与第二条路径匹配,因为以te
开头的每个字符串都是一个字符串。那么我们为什么要在模板中给出命名url呢。?。我是django的新手,所以learning@user3048099:反向计算URL。但如果发生“碰撞”,那当然不起作用。除了URL,模板中没有任何内容可以将其指向正确的URL。该名称仅用于“计算”URL的外观。
urlpatterns = [
path('<int:id>/', views.confighome, name='config'),
path('de<str:schmid>/', views.deleteschema, name='deleteschema'),
path('te<str:schmid>/', views.testschema, name='testschema')
]
urlpatterns = [
path('<int:id>/', views.confighome, name='config'),
path('<str:schmid>/delete/', views.deleteschema, name='deleteschema'),
path('<str:schmid>/test/', views.testschema, name='testschema')
]