Использование FormSet в ClassBasedView в django

Я пытаюсь настроить форму django, состоящую исключительно из набора форм. В form.py у меня есть:

class StudentEnrolmentForm(forms.ModelForm):
    school_class = forms.ModelChoiceField(SchoolClass.objects.currently_enrolling())

    class Meta:
        model = StudentApplication
        fields = []

StudentEnrolmentFormSet = modelformset_factory(StudentApplication, StudentEnrolmentForm, extra=0)

но мне непонятно, как включить FormSet в CBV (в данном случае я выбрал FormView). В этом случае я в основном отображаю таблицу учеников и позволяю оператору назначать каждого ученика в класс. Мне нужна только одна кнопка «Отправить» в конце страницы.


person askvictor    schedule 30.05.2015    source источник


Ответы (1)


Если вы взглянете на источники представлений Django и проверите, как работает FormView, вы обнаружите, что это просто переопределяет методы получения и отправки по умолчанию базового класса View и добавляет некоторые дополнительные методы для обработка форм.

Так что вы можете:

  1. попробуйте назначить свой набор форм в поле form_class вашего представления и поиграться. Возможно, вам придется переопределить некоторые дополнительные методы;
  2. взгляните на https://github.com/AndrewIngram/django-extra-views ;
  3. если варианты № 1 и № 2 вызывают слишком много боли - используйте вид по умолчанию
person Andrey Rusanov    schedule 30.05.2015
comment
в итоге использовал дополнительные просмотры - person askvictor; 03.06.2015