Django: CreateView fail_url

#python #django #django-generic-views

#python #django #django-generic-views

Вопрос:

У меня есть следующий код, и я хочу form_invalid , чтобы метод возвращал ту же страницу, success_url что и . Я рассматривал возможность CreateView подклассирования, но я хочу знать общественное мнение. Как реализовать описанную выше вещь?

 class ProgramNew(CreateView):
    form_class = ProgramForm
    template_name = 'programs/program_list.html'
    success_url = '/manage/programs'

    ....
    ....
    ....

    def form_invalid(self, form):    
        # How to return to self.success_url?
        return super(ProgramNew, self).form_invalid(form)
  

Султан

Ответ №1:

 def form_invalid(self, form):    
    return HttpResponseRedirect(self.get_success_url())
  

Но я не знаю, какая польза от этой формы.

Комментарии:

1. @sultan Я думаю, что это проблема или фреймворк REST, который вы используете.

2. Я исправил это, но на данный момент у меня следующая ошибка 'NoneType' object has no attribute '__dict__'

3. по какой-то причине self.get_success_url() метод возвращает None

4. если установить URL-адрес перенаправления вручную, он работает, но как передать обратно недопустимую форму?

5. @sultan Тогда просмотр в /manage/programs/new должен быть вашим CreateView