Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 基于类的视图传递参数_Django_Python 2.7_Django Views_Django Class Based Views - Fatal编程技术网

Django 基于类的视图传递参数

Django 基于类的视图传递参数,django,python-2.7,django-views,django-class-based-views,Django,Python 2.7,Django Views,Django Class Based Views,我刚刚开始使用基于类的视图,我正在尝试将参数传递给基于类的视图,如下所示: return HttpResponseRedirect(reverse('myView'), kwargs={'method': 'learning'}) 我的看法是: class MyView(View): form_class = MyForm initial = {'key': 'value'} template_name = 'algoRunning.html' def di

我刚刚开始使用基于类的视图,我正在尝试将参数传递给基于类的视图,如下所示:

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
我的url模式如下所示:

urlpatterns = [...    
url(r'^learning/(?P<method>[a-z]+)/$', my_views.MyView.as_view(), name='myView'),
..]
urlpatterns=[。。。
url(r'^learning/(?P[a-z]+)/$),my_views.MyView.as_view(),name='MyView'),
..]
但是,它给了我以下的错误

Reverse for 'myView' with no arguments not found. 1 pattern(s) tried: ['learning/(?P<method>[a-z]+)/$']
找不到参数的“myView”的反向。尝试了1种模式:[“学习/(?P[a-z]+)/$”]

我做错了什么??

kwargs
应该是反向函数的参数:

return HttpResponseRedirect(reverse('myView', kwargs={'method': 'learning'}))

kwargs
应该是反向函数的参数:

return HttpResponseRedirect(reverse('myView', kwargs={'method': 'learning'}))

括号放错地方了
kwargs
reverse
的参数,而不是
HttpResponseRedirect

return HttpResponseRedirect(reverse('myView', kwargs={'method': 'learning'}))
注意,可以通过使用
重定向
快捷方式缩短:

return redirect('myView', method='learning')

括号放错地方了
kwargs
reverse
的参数,而不是
HttpResponseRedirect

return HttpResponseRedirect(reverse('myView', kwargs={'method': 'learning'}))
注意,可以通过使用
重定向
快捷方式缩短:

return redirect('myView', method='learning')

脸掌!!感谢您的快速回复!!谢谢你的快速回复