Django - 多个url路由器,相同的url?

时间:2017-08-19 11:06:22

标签: python django python-3.x url

所以我想在django应用程序中创建一个服务器控制页面,其中包含通过uuid链接到启动,克隆和停止每个服务器的服务器列表。 (想想一个非常糟糕的openstack UI)。这是生成网址的代码。

<li><a href="{% url 'start' uuid=uuid %}">Start</a></li>
<li><a href="{% url 'clone' uuid=uuid %}">Clone</a></li>
<li><a href="{% url 'stop' uuid=uuid %}">Stop</a></li>

不幸的是,当我单击Web应用程序上的克隆链接时,它会启动而不是克隆服务器,这意味着它正在视图中运行start函数。

以下是网址的定义方式:

urlpatterns = [
    url(r'^$', views.index, name='index'),
    #url(r'^$', views.transfer, name='transfer'),
    url(r'^malware/$', views.malware, name='malware'), # Add this /malware/ route
    url(r'^about/$', views.about, name='about'), # Add this /about/ route
    url(r'^(?P<uuid>[\w\-]+)$', views.start, name='start'),
    url(r'^(?P<uuid>[\w\-]+)$', views.paranoidfish, name='paranoidfish'),
    url(r'^(?P<uuid>[\w\-]+)$', views.clone, name='clone'),
    url(r'^(?P<uuid>[\w\-]+)$', views.stop, name='stop'),
    url(r'^(?P<uuid>[\w\-]+)$', views.transfer, name='transfer'),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

我确信这里有一些基本的东西,因为我们总是会感激任何帮助。

1 个答案:

答案 0 :(得分:0)

原来不是唯一的网址是问题

这就是我解决问题的方法:

urlpatterns = [

url(r'^start/(?P<uuid>[\w\-]+)$', views.start, name='start'),
url(r'^paranoidfish/(?P<uuid>[\w\-]+)$', views.paranoidfish, name='paranoidfish'),
url(r'^stop/(?P<uuid>[\w\-]+)$', views.stop, name='stop'),
url(r'^transfer/(?P<uuid>[\w\-]+)$', views.transfer, name='transfer'),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

模板保持不变,因为它动态生成URL模式。漂亮漂亮的imo。