【问题标题】:Using a FormSet in a ClassBasedView in django在 django 的 ClassBasedView 中使用 FormSet
【发布时间】:2015-05-30 05:27:27
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

    所以你可以:

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

    【讨论】:

    • 最终使用了额外的视图
    猜你喜欢
    • 1970-01-01
    • 2013-05-09
    • 2019-06-02
    • 1970-01-01
    • 2013-09-17
    • 2017-06-13
    • 1970-01-01
    • 1970-01-01
    • 2014-05-09
    相关资源
    最近更新 更多