Django Невозможно отправить CSV через запрос POST - PullRequest
0 голосов
/ 08 июля 2019

У меня крайне минимальное приложение, в котором соответствующая функция просмотра определяется следующим образом:

def upload_payment(request):
    if request.method == "GET":
        return HttpResponse(content="foo", status=200)
    elif request.method == "POST":
        file = request.FILES['file']
        decoded_file = file.read().decode('utf-8').splitlines()
        reader = csv.DictReader(decoded_file)
        for row in reader:
            print(row)
        return HttpResponse(content="done", status=200)

Выше приведен соответствующий метод просмотра.

Теперь я запускаю: curl -X POST -H 'Content-Type: text/csv' -d @test_file.csv http://localhost:8000/invoice_admin/upload_payments/

Я получаю сообщение об ошибке:

<code>
<!DOCTYPE html>
<html lang="en">
<head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <meta name="robots" content="NONE,NOARCHIVE">
  <title>403 Forbidden</title>
  <style type="text/css">
    html * { padding:0; margin:0; }
    body * { padding:10px 20px; }
    body * * { padding:0; }
    body { font:small sans-serif; background:#eee; color:#000; }
    body>div { border-bottom:1px solid #ddd; }
    h1 { font-weight:normal; margin-bottom:.4em; }
    h1 span { font-size:60%; color:#666; font-weight:normal; }
    #info { background:#f6f6f6; }
    #info ul { margin: 0.5em 4em; }
    #info p, #summary p { padding-top:10px; }
    #summary { background: #ffc; }
    #explanation { background:#eee; border-bottom: 0px none; }
  </style>
</head>
<body>
<div id="summary">
  <h1>Forbidden <span>(403)</span></h1>
  <p>CSRF verification failed. Request aborted.</p>


  <p>You are seeing this message because this site requires a CSRF cookie when submitting forms. This cookie is required for security reasons, to ensure that your browser is not being hijacked by third parties.</p>
  <p>If you have configured your browser to disable cookies, please re-enable them, at least for this site, or for &#39;same-origin&#39; requests.</p>

</div>

<div id="info">
  <h2>Help</h2>

    <p>Reason given for failure:</p>
    <pre>
    CSRF cookie not set.
    

В общем, это может произойти, когда существует подлинная подделка межсайтовых запросовили когда

...