【发布时间】:2021-11-07 15:47:58
【问题描述】:
我想知道如何通过使用 uuid 作为 slug 来访问 UpdateView。所以我的目标是一个类似的网址
http://myapp.example.de/edit/7efdbb03-bdcf-4b8a-85dd-eb96ac9954fd
我已经定义了这样的视图:
class DeviceEventUploadView(UpdateView):
model = Event
slug_url_kwarg = 'uuid_slug'
slug_field = 'unique_id'
和 urls.py 像这样:
urlpatterns = [
path('admin/', admin.site.urls),
path('edit/<uuid:uuid_slug>',
DeviceEventUploadView.as_view(),
name='event_update'),
]
我来了:
Using the URLconf defined in myproject.urls, Django tried these URL patterns, in this order:
admin/
^edit/<uuid:uuid_slug> [name='event_update']
The current path, edit/7efdbb03-bdcf-4b8a-85dd-eb96ac9954fd/, didn’t match any of these.
我的思考失败在哪里?
【问题讨论】:
-
您忘记关闭
<uuid:uuid_slug>。它需要一个右尖括号>。此外,这是path语法。 -
@WillemVanOnsem 嗯。我想我现在已经发现了这个问题。测试时,结尾 / 仍然存在于 URL 中。没有它似乎工作。敬请期待;)
-
@frian: 是的,通常路径应该以斜杠结尾,有一个名为
APPEND_SLASH的 Django 设置,如果为 true,将首先查找 url,如果没有结束,则附加一个斜杠使用斜线,然后尝试再次查找 URL。 -
感谢提示
-
我认为标题应该说“slug”而不是“slag”哈哈
标签: django updateview