【问题标题】:Django urls.py mistaking two close urlsDjango urls.py 误会了两个关闭的 url
【发布时间】:2018-05-31 08:03:55
【问题描述】:

我正在向我的应用程序添加表单以修改我的大厅(我的自定义模型)。

urls.py 中,这是我的 urlpattern:

urlpatterns = [
url(r'^$', views.index, name='index'),
url(r'^lobbys/$', views.LobbyListView.as_view(), name='lobbys'),
url(r'^lobby/(?P<pk>[\w-]+)/$', views.LobbyDetailView.as_view(), name='lobby-detail'),
url(r'^lobby/create/$', views.LobbyCreate.as_view(), name='lobby_create'),
url(r'^lobby/(?P<pk>\d+)/update/$', views.LobbyUpdate.as_view(), name='lobby_update'),
url(r'^lobby/(?P<pk>\d+)/delete/$', views.LobbyDelete.as_view(), name='lobby_delete'),
]

问题如下:

第三个 url 应该链接到以 UUID 字段作为主键标识的单个大厅模板。没有最后三行一切正常,但是当我为表单添加三个 url 时,我得到了错误

异常值:["'create' 不是有效的 UUID。"]

我了解 urls.py 将“create”作为主键,而不是将其视为其他视图的 url。

如何绕过这个问题? 非常感谢。

【问题讨论】:

标签: python django django-templates django-views django-urls


【解决方案1】:

您需要更改 url 模式的顺序

url(r'^lobby/create/$', views.LobbyCreate.as_view(), name='lobby_create'),
url(r'^lobby/(?P<pk>[\w-]+)/$', views.LobbyDetailView.as_view(), name='lobby-detail'),

问题是,由于lobby-detail 正在寻找字母模式,它也匹配模式lobby/create。正则表达式模式中的顺序很重要,因此 lobby_create 永远不会匹配。通过更改顺序,问题将得到解决

【讨论】:

    猜你喜欢
    • 2012-07-10
    • 2011-09-16
    • 2020-09-12
    • 2016-10-22
    • 1970-01-01
    • 2013-08-02
    • 1970-01-01
    • 1970-01-01
    • 2020-02-03
    相关资源
    最近更新 更多