在 django 的 ClassBasedView 中使用 FormSet

Using a FormSet in a ClassBasedView in django

我正在尝试设置仅由表单集组成的 Django 表单。在 forms.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)。在这种情况下,我基本上显示 table 个学生,并允许操作员将每个学生分配给 class。我只想在页面末尾有一个 'submit' 按钮。

如果您查看 Django 视图的来源并检查 FormView 的工作方式,您会发现它只是 overrides default get and post methods of base View class and adds some additional methods for the form handling

所以你可以:

  1. 尝试将您的表单集分配给您视图的 form_class 字段并 玩。可能你将不得不覆盖一些额外的 方法;
  2. 看看https://github.com/AndrewIngram/django-extra-views
  3. 如果选项 #1 和 #2 导致太多痛苦 - 使用默认视图