Представления на основе классов Django - возврат HTTPResponse - PullRequest
0 голосов
/ 23 мая 2018

Почему это не работает и вместо этого возвращается ValueError?Я пытаюсь получить информацию от пользователя, а затем, в зависимости от выбора, который он делает, визуализировать конкретное представление.Если я переместлю return redirect() обратно внутрь post function, это сработает.

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')

Редактировать - я понимаю, что означает ошибка, но как я могу достичь вышеупомянутой цели.

1 Ответ

0 голосов
/ 23 мая 2018

Вы пропустили инструкцию возврата, как показано ниже

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