0

我正在创建一个表单列表,每个表单都传递了一个前缀 arg。在我的情况下,前缀 arg 是一个动态值(此外,每个表单在初始化期间都需要一些额外的 kwargs),例如

for staff in stafflist:
    form = forms.BookingForm(
                prefix=staff.pk, event=event, type=type)

因此,为了重新创建 POST 请求的表单,我需要将前缀值存储在 Session 中。这允许我执行以下操作:

staff_list = request.session['staff_list_on_view']
    for staff in stafflist:
        post_forms_dict[staff.id] = forms.BookingForm(
            request.POST, prefix=staff.pk, event=event, type=type)

if all([form.is_valid() for form in post_forms_dict.values()]):
    for form in post_forms_dict.values():
        form.save()

这一切都很好,但我想知道是否有比将前缀值存储在 Session 中更好的方法(我通常喜欢避免)。Django 是否能够自行返回前缀表单列表,而我不必再次使用前缀重新创建它们(并且必须记住它)?像 request.POST.get_prefixed_data_as dict() 这样的东西会很好;)

注意:我正在研究表单集,但我相信由于我需要为每个单独的表单设置动态 kwargs,我将无法使用它们。

4

0 回答 0