Django ModelFormSet是否占用了我所有的内存?类似于内存泄漏

Django ModelFormSet是否占用了我所有的内存?类似于内存泄漏,django,memory-leaks,django-forms,Django,Memory Leaks,Django Forms,我有一个Django的观点,其开头如下: def MyView(request): formset = MyModelFormSet(request.POST) ... 显然,视图中的代码比我显示的要多。我的问题特定于MyModelFormSet。我的问题是Django在调用视图时使用了所有内存* 是否有可能MyModelFormSet正在从数据库中提取每个“MyModel”?是否需要为MyModelFormSet提供queryset参数 *从技术上讲,这不是内存泄漏,但在我看

我有一个Django的观点,其开头如下:

def MyView(request):
    formset = MyModelFormSet(request.POST)
    ...
显然,视图中的代码比我显示的要多。我的问题特定于
MyModelFormSet
。我的问题是Django在调用视图时使用了所有内存*

是否有可能
MyModelFormSet
正在从数据库中提取每个“
MyModel
”?是否需要为
MyModelFormSet
提供
queryset
参数


*从技术上讲,这不是内存泄漏,但在我看来,它最初似乎是一个内存泄漏,因此将其称为内存泄漏可能有助于其他人找到这个问题和解决方案。

很抱歉回答我自己的问题。我在其他地方找不到明确指出的这些信息,希望这个Q/A能对其他人有所帮助

Yes
MyModelFormSet
正在从数据库中提取每个“
MyModel
”。我在数据库中有15000个
MyModel
s的测试环境中验证了这一点。我观察到以下情况:

1) 我在一篇HTTP文章中只提交了3个MyModels表单。职务结束后:

2)
formset.forms
包含3个
MyModelForm
s

3)
len(formset.\u queryset)
等于15000<代码>表单集。_queryset包含数据库中每个
MyModel
的列表。Django已经提取了每个
MyModel
,并将其存储在内存中

解决方案是提供一个
queryset
参数。有关这方面的更多信息,请参阅

此测试使用Django版本1.4.5执行