【问题标题】:Django Reverse Not Found when reversing a url in main app在主应用程序中反转 url 时找不到 Django Reverse
【发布时间】:2020-03-24 15:35:46
【问题描述】:

我无法理解为什么这个对我的 Django 视图之一的简单 reverse() 调用不起作用。该错误发生在我的一些测试中:

反码sn-p:

# myapp/tests.py
response = self.client.get(reverse('index', args=()))

网址注册:

# myapp/urls.py
urlpatterns = [
    path('', views.index, 'index'),
    path('configuration/', include('configuration.urls')),
    path('admin/', admin.site.urls),
]

查看:

#myapp/views.py
def index(request):
    elements_list = DB_ELEMENTS.objects.all()
    return render(request, "startpage.html", {'elements': elements_list})

我不断收到的错误是 Reverse for 'index' not found. 'index' is not a valid view function or pattern name.

任何帮助表示赞赏。

【问题讨论】:

  • 试试path('', views.index, name='index'),
  • 路径'' 没有任何参数(例如<int:pk>),因此您将无法使用args=([element1],) 反转它。
  • 谢谢,这成功了。另外,我通过 args 传递了执行的视图函数不期望的参数。

标签: python django url django-views reverse


【解决方案1】:

根据docs:需要使用name关键字参数(kwarg):

# myapp/urls.py
urlpatterns = [
    path('', views.index, name='index'),
    path('configuration/', include('configuration.urls')),
    path('admin/', admin.site.urls),
]

【讨论】:

    猜你喜欢
    • 2021-08-10
    • 2014-01-12
    • 2017-08-02
    • 2023-01-27
    • 1970-01-01
    • 2013-08-23
    • 2023-03-07
    • 2020-03-17
    • 2022-09-29
    相关资源
    最近更新 更多