Изменение формы на основе атрибута

class Client(models.Model):
    name = models.CharField(verbose_name='UID', max_length=80)
    type = models.CharField(verbose_name='Type',
                                choices=BUSINESS_CHOICES,
                                max_length=80,
                                default='b-2')

У меня есть модель, как описано выше, я хочу сделать так, чтобы на основе атрибута type нужно было изменить форму в представлении update. Я пробовал следующий способ в представлениях

class ClientEditView(UpdateView):
    model = Client
    template_name = 'client_edit_form.html'
    success_url = reverse_lazy('xxxx')

    def get_form_class(self):
        if self.object.type == 'b-2':
            form_class = ClientEditForm
        elif self.object.type == 'b-3':
            form_class = ClientEditForm2
        return super(ClientEditView, self).get_form_class() 

Но он выдает ошибку. Using ModelFormMixin (base class of ClientEditView) without the 'fields' attribute is prohibited.

Метод get_form_class должен возвращать класс формы. Попробуйте это

    def get_form_class(self):
        if self.object.type == 'b-2':
            return ClientEditForm
        elif self.object.type == 'b-3':
            return ClientEditForm2
        return super(ClientEditView, self).get_form_class() 
Вернуться на верх