在django中的ClassBasedView中使用FormSet

时间:2015-05-30 05:27:27

标签: python django django-forms django-class-based-views formset

我正在尝试设置一个仅由formset组成的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)。在这种情况下,我基本上显示一个学生表,并允许操作员将每个学生分配到一个班级。我只想在页面末尾有一个“提交”按钮。

1 个答案:

答案 0 :(得分:0)

如果您将查看Django视图的来源并检查FormView的工作方式,您会发现它只是基本View类的overrides default get and post methods,并为form handling添加了一些其他方法。

所以你可以:

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