基于类的视图传递参数 [英] class based view passing parameters
本文介绍了基于类的视图传递参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我刚刚开始使用基于类的视图,并且尝试将参数传递给基于类的视图,如下所示:
I have just started using Class-based views and I am trying to pass the parameters to class-based view as:
return HttpResponseRedirect(reverse('myView'), kwargs={'method': 'learning'})
我的看法是:
class MyView(View):
form_class = MyForm
initial = {'key': 'value'}
template_name = 'algoRunning.html'
def dispatch(self, request, *args, **kwargs):
print (kwargs['method'])
data = self.readFile('myFile.txt')
context = {'result': data}
return render(request, self.template_name, context)
def readFile(self, filePath):
# read data
return data
我的网址格式如下:
urlpatterns = [...
url(r'^learning/(?P<method>[a-z]+)/$', my_views.MyView.as_view(), name='myView'),
..]
但是,它给了我以下错误
But, it gives me following error
Reverse for 'myView' with no arguments not found. 1 pattern(s) tried: ['learning/(?P<method>[a-z]+)/$']
我在做什么错??
推荐答案
您将括号放在错误的位置. kwargs
是 reverse
的参数,而不是 HttpResponseRedirect
的参数.
You have the parentheses in the wrong place. kwargs
is a parameter to reverse
, not to HttpResponseRedirect
.
return HttpResponseRedirect(reverse('myView', kwargs={'method': 'learning'}))
请注意,可以使用 redirect
快捷方式将其缩短:
Note, this could be shortened by using the redirect
shortcut:
return redirect('myView', method='learning')
这篇关于基于类的视图传递参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文