我正在创建一个表单列表,每个表单都传递了一个前缀 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,我将无法使用它们。