Python GET/POST参数的数量超出了设置。数据\u上载\u最大\u数量\u字段
我收到一个错误:“GET/POST参数的数量超过了设置。数据\u上传\u最大\u数量\u字段” 错误表明ToomanyFieldSent位于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
/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