Urlconf中似乎没有任何模式



我收到了这个错误,但我无法解决。在视图.py我有:

...code...
def get_success_url(self):
booking = self.object
return reverse("complete_booking", booking.id)

urls.py:

from django.urls import path
from . import views

urlpatterns = [
path(
'confirm/',
views.ConfirmTripView.as_view(),
name="confirm_trip"),
path(
'<pk>/passengers/add',
views.InputPassengersView.as_view(),
name="create_passengers"),
path(
'<pk>/checkout/',
views.CompleteBookingView.as_view(),
name="complete_booking"),
]

让我困惑的是,我对"create_passengers"视图几乎完全相同(booking.id作为参数传递(,而且它运行良好。

回溯显示:

Traceback切换到复制粘贴视图

"包含的URLconf"{name}"中似乎没有任何模式。如果在文件中看到有效的模式,则问题可能是由循环导入引起的">

上述异常('in'对象不可迭代(是以下异常的直接原因:我能帮我解决这个问题吗?

这不起作用的原因是reverse(…)[Django doc]将argskwargs作为参数。args应该是一个可迭代的项,如元组、列表等,而kwargs是一个类似字典的对象。因此,您使用反转

def get_success_url(self):
return reverse('complete_booking', args=(self.object.id,))

redirect(…)[Django-doc]另一方面使用位置参数和命名参数,但不能将其用于get_success_url

相关内容

最新更新