Как соединить CreateView и UpdateView?

У меня имеется нестандартная форма. В ней два динамических Select Box'а. Содержимое одного зависит от URL, второго - от первого через API-запрос. Для того, чтобы сформировать форму, у меня получился большой CreateView класс. В нем, к примеру, обрабатывается URL (dispatch), к входящим с формы данным добавляются вспомогательные перед записью в базу (form_valid) и т.д..

class CostCreate(CreateView):
        def dispatch(self, request, *args, **kwargs):
            try:
                self.type_of_cost = kwargs['type_of_cost']
            except KeyError:
                self.type_of_cost = 'daily'

        def form_valid(self, form):
            f = form.save(commit=False)
            f.type = self.type_of_cost
            f.save()
            return super().form_valid(form)


Естественно, все эти методы необходимо сделать и для UpdateView, поэтому он получается во многом дубликатом первого класса.

Когда я смотрю на это, я понимаю, что эти два класса нужно объединить. Но я не понимаю, как именно. Подскажите, пожалуйста.
  • Вопрос задан
  • 116 просмотров
Решения вопроса 1
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы