在 Django 中验证数据之前,是否可以从表单集中获取数据作为字典列表?

Is it possible to get the data from a formset as a list of dictionaries before it is validated in Django?

我知道在验证之后,formset.cleaned_data 给出了一个表单集的字典列表。现在,我需要在验证之前获取相同的列表。这可能吗?

if request.method == 'POST':
    formset = SampleFormSet(request.POST, prefix='sample')
    print(formset...?) #Should print all the data in the formset
    if formset.is_valid():
        ...
    else:
        formset... #Modify it 

有可能。

有两条路径。

首先:在视图上你可以这样做:

def my_func(request):   
       if request.method == 'POST':
          #your var before validate
          my_var = request.POST.get("your_field")
          # to do you code.

在您的表单中的方法 clean() 中添加了另一个选项。

像这样。

 def clean(self):
    #your var before validate
    your_var = self.cleaned_data["your_field"]

我刚刚查看了文档,目前我认为这是不可能的。

Source code of formsets in Django 2.0

Documentation of formsets in Django 3.2

是的,您可以通过 formset.data (returns QueryDict) 访问行数据。