Django,如何将参数发送到重定向vi

2024-05-16 11:54:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我的视图函数应该接收什么参数:

def result(request, exercise_field = {"tro": "lolo"}):
    return render(request, "lolapp/result.html", exercise_field)

“Exercise\u field”是接受参数的变量。你知道吗

该函数的Url:

url(r'^result/', view = views.result, kwargs = {'lolo': 'roflo'}, name = 'result')

如你所见,我试图通过“kwargs”关键字传递我的论点。到目前为止-还没有成功。你知道吗

调用此视图的快捷方式:

    return redirect('result', kwargs={'lol': 'rofl'})

最后是错误信息:

Reverse for 'result' with arguments '()' and keyword arguments '{'kwargs': {'lol': 'rofl'}}' not found. 1 pattern(s) tried: ['result/']

我需要发送一个参数到“结果”视图。你知道吗

这是典型的“NoReverseMatch”错误,但在互联网上没有解决方案适合我。你知道吗

我做错了什么?你知道吗


Tags: 函数视图field参数returnrequestdefresult
3条回答
return redirect('result', kwargs={'lol': 'rofl'})

应适用于kwargs:

mydict = {'lol': 'rofl'}
return redirect('result',passdict=mydict)

或者只需使用args:

mydict = {'lol': 'rofl'}
return redirect('result',mydict)

您的URL根本不接受任何参数:视图kwarg是硬编码的。因此,任何请求(无论是重定向请求还是普通请求)都不可能传递硬编码请求以外的任何KWARG。你知道吗

您有多种选择:

  • 更改URL模式,使其不接受参数
  • 添加一个额外的模式与其他夸尔格硬编码
  • 在会话中传递数据而不是kwargs。你知道吗

可能只是打字错误:

kwargs={'lol': 'rofl'}

您应该尝试:

kwargs={'lolo': 'rofl'}

相关问题 更多 >