Как получить доступ к Django UpdateView с использованием uuid в качестве шлака
Мне интересно, как я могу получить доступ к UpdateView, используя uuid в качестве slug. То есть моя цель - URL типа
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 следующим образом:
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
. Таким образом, вы определяете его следующим образом:
path(
'edit/<uuid:uuid_slug>/',
DeviceEventUploadView.as_view(),
name='event_update'
),