web-dev-qa-db-ja.com

GET / POSTパラメーターの数が設定を超えました。DATA_UPLOAD_MAX_NUMBER_FIELDS

エラーが発生しました、GET/POSTパラメーターの数がsettings.DATA_UPLOAD_MAX_NUMBER_FIELDSを超えました。 views.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

のようなPOSTMANを使用してアクセスと要求データを投稿しますenter image description here

このエラーはファイルサイズを送信できることの制限だと思うので、settings.pyにコードを追加しました

DATA_UPLOAD_MAX_MEMORY_SIZE = 100000000

しかし、エラーは解決しません。このページを読みました 「GET/POSTパラメーターの数を超えました」エラーを回避する方法? 参照として。これを修正するにはどうすればよいですか?

14
user8817477

djangoのドキュメントにあるように、DATA_UPLOAD_MAX_NUMBER_FIELDSの値はデフォルトの1000です。したがって、フォームにその数よりも多くのフィールドが含まれると、TooManyFieldsエラーが発生します。

こちらをご覧ください: https://docs.djangoproject.com/en/1.11/ref/settings/

解決方法は簡単です。settings.pyでDATA_UPLOAD_MAX_NUMBER_FIELDSが存在する場合、値をより高い値に変更するか、そうでない場合は、settings.pyに追加します。

DATA_UPLOAD_MAX_NUMBER_FIELDS = 10240 # higher than the count of fields
25
Yun Luo