gpt4 book ai didi

python - 如何修复重定向时的 NoReverseMatch

转载 作者:太空宇宙 更新时间:2023-11-03 21:28:01 28 4
gpt4 key购买 nike

为什么我会得到

Reverse for 'explorer_js' not found. 'explorer_js' is not a valid view function or pattern name.

当调用下面的select View 时?:

def explorer_js(request):
activities = Activity.objects.all()
fill_column = lambda attr : [getattr(activity, attr) for activity in activities]
d = {
'ids' : fill_column('id'),
'dates_added' : fill_column('date_added'),
'numbers' : fill_column('number'),
'athletes' : fill_column('athlete'),
'start_dates' : fill_column('start_date'),
'names' : fill_column('name'),
'countries' : fill_column('country'),
'links' : fill_column('link'),
'segment_efforts' : fill_column('segment_efforts'),
'distances' : fill_column('distance'),
'average_speeds' : fill_column('average_speed')
}

context = {'d': d}
return render(request, 'explorer_api/explorer_js.html', context)

def select(request):
"""Filters explorer data and sends it to explorer again"""
return redirect('explorer_js')

应用程序的urls.py:

app_name = 'explorer_api'
urlpatterns = [
# Home page.
path('', views.index, name='index'),
path('explorer_js/', views.explorer_js, name='explorer_js'),
path('select/', views.select, name='select'),
]

最佳答案

您需要使用 app_name 来引用该特定 View 所在的命名空间,如下所示:

redirect('explorer_api:explorer_js')

这告诉 Django 在哪里查找 View ,这样,如果您在两个不同的应用程序中有两个具有相同名称的不同 View (例如 'login'),Django 可以解析你指的是哪一个。

参见this answer以获得更深入的解释。

关于python - 如何修复重定向时的 NoReverseMatch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53713005/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com