Django教程,如何发送多个参数?

Django教程,如何发送多个参数?,django,django-views,Django,Django Views,我知道以前有人问过类似的问题,但我从未见过任何我能理解或有效的答案。但我对Django很陌生,所以我可能会错过它。但我的问题必须有一个简单的答案。 我正在关注Django的教程,在第4节,他们在发布表单后使用httpresponseredirect进入下一页 return HttpResponseRedirect(reverse('polls:results', args=(question.id,))) “视图”页函数如下所示: def detail(request, question_id

我知道以前有人问过类似的问题,但我从未见过任何我能理解或有效的答案。但我对Django很陌生,所以我可能会错过它。但我的问题必须有一个简单的答案。 我正在关注Django的教程,在第4节,他们在发布表单后使用httpresponseredirect进入下一页

return HttpResponseRedirect(reverse('polls:results', args=(question.id,)))
“视图”页函数如下所示:

def detail(request, question_id):
我的问题是:如何向函数发送更多参数

我现在试过这个:

 urls.py
 path('<int:question_id>/result/<int:qid>/<str:aa>/', views.result, name='result'),


 views.py
 return HttpResponseRedirect(reverse('bsapp:result', kwargs = dict(qid = question.id, xx = aa)))

 The function
def result(request, qid, xx):
url.py
路径('/result//',views.result,name='result'),
views.py
返回HttpResponseRedirect(反向('bsapp:result',kwargs=dict(qid=question.id,xx=aa)))
功能
def结果(请求、qid、xx):

给出:django.url.exceptions.NoReverseMatch:Reverse for'result',找不到关键字参数“{'qid':3,'xx':'6'}”。尝试了1种模式:['bsapp/(?P[0-9]+)/result/(?P[0-9]+)/(?P[^/]+)/$']

您使用kwargs而不是args,其中kwargs是一个字典,其中键与url调度程序中的参数匹配-

从django.url导入路径
从…起导入视图
URL模式=[
路径('blog/',views.page),
路径('blog//page//',views.slug\u page,name=“slug\u page”),
路径('blog/page/',views.page),
]
#视图(在blog/views.py中)
def slug_页面(请求,slug,num=1):
#在这里做事
返回重定向(反向(“slug_page”,kwargs=dict(slug=“example”,num=2))
...

您可以添加任意数量的参数,只要确保您的url接受该参数即可

例:

url.py

path('detail/<int:first_arg>/<int:second_arg>/', views.section, name='article-section'),

这就是我必须做的:

 xx="EXTRA ARGUMENT"
 return HttpResponseRedirect(reverse('bsapp:result', args=(question.id, xx,)))

 path('<int:question_id>/<str:xx>/result/', views.result, name='result'),  


 def result(request, question_id, xx): 
xx=“额外参数”
返回HttpResponseRedirect(反向('bsapp:result',args=(question.id,xx,))
路径(“//result/”,views.result,name='result'),
def结果(请求,问题编号,xx):

感谢您的帮助,我非常感谢。

在您的示例中,参数似乎是路径的一部分,而不是路径的一部分。这是我想在下一页显示的文本。还是我弄错了?让我们假设我只想发送两个词“你好”和“再见”。我该怎么做?我想发送的参数不应该是路径的一部分,而应该是我想在下一页显示的文本。在这种情况下,最好使用会话或cookie。
def detail(request, first_arg, second_arg):
 xx="EXTRA ARGUMENT"
 return HttpResponseRedirect(reverse('bsapp:result', args=(question.id, xx,)))

 path('<int:question_id>/<str:xx>/result/', views.result, name='result'),  


 def result(request, question_id, xx):