Python 通过Django中的URL传递列表时出错
我尝试通过Django中的URL传递列表。 我发现: 但我还是会出错。我觉得我在绕圈子跑 我的网址:Python 通过Django中的URL传递列表时出错,python,django,Python,Django,我尝试通过Django中的URL传递列表。 我发现: 但我还是会出错。我觉得我在绕圈子跑 我的网址: path('query/', include(('query.urls', 'query-space'), namespace='query-space')), re_path(r'^2/(?P<amb_list>\w+)/$',views.ambitionGenPage, name='userambitiongen'), 我修改了链接的代码。 行中: redirect=Http
path('query/', include(('query.urls', 'query-space'), namespace='query-space')),
re_path(r'^2/(?P<amb_list>\w+)/$',views.ambitionGenPage, name='userambitiongen'),
我修改了链接的代码。
行中:
redirect=HttpResponseRedirect(反向('query-space:userambitiongen',args=(amb_列表)))
他不知道这个论点:
name错误:未定义名称“amb\u list”
在这个例子中没有参数。当我尝试此操作时,会出现以下错误:
未找到任何参数的“userambitiongen”的反向。已尝试1个模式:[“查询/2/(?P\\w+/$”]
我在互联网上也找不到这个表达式:redirect['Location']
有人能给我解释一下[地点]代表什么吗
正确的解决方案是什么?我试着在几个小时内自己找到它
非常感谢您抽出时间
返回重定向['Location']
将您重定向到示例:yourwebpage.com/Location
您可以将列表临时保存到sql数据库中,然后将其删除。
返回重定向['Location']
将您重定向到示例:yourwebpage.com/Location
您可以将列表临时保存到sql数据库中,然后将其删除。这不是因为键入错误吗?您有一个变量
amb\u list
,但它找不到该变量amb\u list
,该变量确实不存在。噢,这就是原因。非常感谢。现在我得到了一个错误,ambs_列表的示例列表不适合我URL中的正则表达式:Reverse for'userambitiongen',未找到参数'('FR','FP')。尝试了1个模式:['query/2/(?P\\w+/$')]
我接管了该链接提问者的URL,因为没有其他URL。遗憾的是,这不起作用。你知道正则表达式应该是怎样的吗?我也不明白以“重定向”开头的两行中发生了什么。我将非常感谢你的解释。我希望我不要表现得太愚蠢。在这种情况下,你必须更具体地说明你正在使用的url文件(不仅仅是它们的摘录,也不仅仅是其中的一个),以便其他人检查可能发生的事情。这不只是因为打字错误吗?您有一个变量amb\u list
,但它找不到该变量amb\u list
,该变量确实不存在。噢,这就是原因。非常感谢。现在我得到了一个错误,ambs_列表的示例列表不适合我URL中的正则表达式:Reverse for'userambitiongen',未找到参数'('FR','FP')。尝试了1个模式:['query/2/(?P\\w+/$')]
我接管了该链接提问者的URL,因为没有其他URL。遗憾的是,这不起作用。你知道正则表达式应该是怎样的吗?我也不明白以“重定向”开头的两行中发生了什么。我将非常感谢你的解释。我希望我不要表现得太愚蠢。在这种情况下,你必须更具体地说明你正在使用的url文件(不只是摘录,也不只是其中一个),以便其他人检查可能发生的事情。啊,谢谢你的解释!我的想法是首先将列表保存到数据库中,但我认为在URL中传输列表要比在db中加载列表快得多,只是在db的下一个视图中查询列表,我接下来需要它。还是我错了,两种解决方案之间的时间差很小?取决于工作负载,数据库是存储和提取大量数据的非常有效的方法。但是如果它是小的,那么URL也可以。啊,谢谢你的解释!我的想法是首先将列表保存到数据库中,但我认为在URL中传输列表要比在db中加载列表快得多,只是在db的下一个视图中查询列表,我接下来需要它。还是我错了,两种解决方案之间的时间差很小?取决于工作负载,数据库是存储和提取大量数据的非常有效的方法。但如果它很小,那么URL也应该很好。
def ambitionPage(request):
if request.method == 'POST':
form = AmbitionForm(request.POST)
if form.is_valid():
ambs_list = form.cleaned_data['ambition_field']
redirect = HttpResponseRedirect(reverse('query-space:userambitiongen'))
redirect['Location'] += '&'.join(['ambs={}'.format(x) for x in ambs_list])
return redirect
form = AmbitionForm()
return render(request, 'query/ambition.html',{'form':form,})
def ambitionGenPage(request):
ambitions = request.GET.getlist('amb_list')
if ambitions:
ambitions = [int(x) for x in ambitions]
print(ambitions) #I first want to check what data I get
return render(request, 'query/ambitionGen.html',{})