Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.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类的视图-返回HTTPResponse_Django_Django Forms_Django Views - Fatal编程技术网

基于Django类的视图-返回HTTPResponse

基于Django类的视图-返回HTTPResponse,django,django-forms,django-views,Django,Django Forms,Django Views,为什么它不工作,而是返回ValueError?我试图从用户那里获得一个输入,然后根据用户的选择渲染一个特定的视图。如果我将return redirect()移回到post函数中,它确实可以工作 class Choice(View): form_class = SomeForm template_name = 'app/object_form.html' def get(self,request,*args, **kwargs):

为什么它不工作,而是返回
ValueError
?我试图从用户那里获得一个输入,然后根据用户的选择渲染一个特定的视图。如果我将
return redirect()
移回到
post函数中,它确实可以工作

class Choice(View):

        form_class = SomeForm
        template_name = 'app/object_form.html'

        def get(self,request,*args, **kwargs):

             form = self.form_class()
             return render (request, self.template_name, {'form':form})

        def post(self,request,*args,**kwargs):

             form = self.form_class(request.POST)
             if form.is_valid():
                 self.redirect_to_createform(request,form.cleaned_data['choice'])

             else:
                print('form not valid')
                print(form.errors)
                return render (request, self.template_name, {'form':form})

        def redirect_to_createform(self, request, option):

            print(option)
            ## Here i should have some logic to redirect to different views depending on the `option`
            return redirect('to_somewhere')

编辑-我理解错误的含义,但如何实现上述目标。

您缺少返回语句,如下所示

        if form.is_valid():
           return self.redirect_to_createform(request,form.cleaned_data['choice'])

您缺少返回语句,如下所示

        if form.is_valid():
           return self.redirect_to_createform(request,form.cleaned_data['choice'])
是的,我现在恨我自己:))。Thx,10分钟后我会接受答案。是的,我现在恨我自己:))。Thx,10分钟后我会接受答案。谢谢。