【问题标题】:Urlconf does not appear to have any patterns in itUrlconf 中似乎没有任何模式
【发布时间】:2021-03-27 01:12:01
【问题描述】:

我收到此错误,但我无法弄清楚。 在 views.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}' 中似乎没有任何模式。如果您在文件中看到有效模式,则问题可能是由循环导入引起的。”

上述异常('int'对象不可迭代)是以下异常的直接原因: 我能得到一些帮助来解决这个问题吗?

【问题讨论】:

  • 你能显示顶部的urls.py 文件吗?

标签: python django urlconf


【解决方案1】:

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

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

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

【讨论】:

  • 完美!感谢您的澄清
猜你喜欢
  • 2017-01-06
  • 2014-11-22
  • 2019-08-21
  • 2018-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-21
相关资源
最近更新 更多