Python GET/POST参数的数量超出了设置。数据\u上载\u最大\u数量\u字段

Python GET/POST参数的数量超出了设置。数据\u上载\u最大\u数量\u字段,python,django,Python,Django,我收到一个错误:“GET/POST参数的数量超过了设置。数据\u上传\u最大\u数量\u字段” 错误表明ToomanyFieldSent位于/api/upload 我在我的视图.py中编写了 def upload(request): id, array = common(request) if request.FILES: file = request.FILES['req'].temporary_file_path() else: re

我收到一个错误:“GET/POST参数的数量超过了设置。数据\u上传\u最大\u数量\u字段”

错误表明ToomanyFieldSent位于
/api/upload

我在我的
视图.py中编写了

def upload(request):
    id, array = common(request)

    if request.FILES:
        file = request.FILES['req'].temporary_file_path()
    else:
        return HttpResponse('<h1>NG</h1>')

    return HttpResponse('<h1>OK</h1>')

def common(request):
    id = json_body.get("access", "0")
    if id == "":
        id = "0"

    s = []
    with open(ID_TXT, 'r') as f:
        for line in f:
            s += list(map(int, line.rstrip().split(',')[:-1]))

    array = [s[i:i + 2] for i in range(0, len(s), 2)]

    return id, array

但这个错误并没有解决。我读了这一页:作为参考。我应该如何解决这个问题?

正如django的doc所说,数据上传\最大\数字\字段的值默认为1000,因此一旦表单包含的字段超过该数字,就会出现TooManyFields错误

在这里查看:

因此,解决方案很简单,我认为,如果您的settings.py中存在DATA\u UPLOAD\u MAX\u NUMBER\u字段,请将其值更改为更高的值,或者,如果不存在,请将其添加到settings.py:

DATA_UPLOAD_MAX_NUMBER_FIELDS = 10240 # higher than the count of fields

这发生在我试图将一个巨大的列表值发布到后端时。在我的例子中,我可以自由地将列表作为字符串发送,并且它起了作用。Django默认情况下有此检查以防止可疑活动(
可疑操作

不过,下面的设置也会起作用

# to disable the check
DATA_UPLOAD_MAX_NUMBER_FIELDS = None

您可以将其设置为“无”以禁用检查。预期会收到异常多的表单字段的应用程序应调整此设置。
来自Django官方文档

thx,你的答案。你的代码对我有用。但是,我不明白数据\u上传\u最大数量\u字段和数据\u上传\u最大内存\u大小的区别。我阅读了文档,但无法理解其中的区别。后者是为了限制内存消耗。可以将
数据\u上传\u max\u NUMBER\u FIELDS
设置为的最大值是多少?@RedCricket在django中,您可以将其设置为“无”以禁用字段计数检查。此外,据我所知,只要您的web服务器能够为一个请求提供那么多字节的服务,就没有限制。与之类似,nginx的
客户端最大体大小的默认值为1MB。您就是救世主。非常感谢。
# to disable the check
DATA_UPLOAD_MAX_NUMBER_FIELDS = None