Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 相同的url模式,具有不同的网络视图和名称_Django - Fatal编程技术网

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

]