0

「CSRFトークンが見つからないか間違っています」というエラーが発生しましたが、既にWebフォームに{% csrf_token%}というタグが追加されています。なぜ私はまだこのエラーに直面しているすべてのアイデア?トークンタグを含めてもCSRFトークンが見つからないか間違っています

def index(request): 
    if request.method == 'POST': 
     form = RequestForm(request.POST) 
     if form.is_valid(): 
      form.save() 
      return render(request, 'index.html') 
    else: 
     form = RequestForm() 
    return render(request, 'index.html', {'form': form})` 

私はテンプレートを投稿することはできませんが、

<form id="reqForm" action="" method="POST" enctype="text/plain">{% csrf_token %} 
+0

あなたのソースを表示した場合あなたはcsrfトークン値を持つ隠れた入力ボックスを見ることができますか? –

+0

ええ、今私は、enctype属性を削除した後にできます。ありがとうございました。 – krish

答えて

0

下の行に示されているように私はあなたの問題は、フォームでenctype="text/plain"であるように見えたトークンを使用しています。 CSRF保護は、ポストデータがコード化された形式であることを前提としています。

最も簡単な修正はに相当する、完全にそれを削除することです:あなたが使用するフォームでファイルをアップロードしていた場合

enctype="enctype=application/x-www-form-urlencoded" 

enctype="multipart/form-data" 
+0

うん、それは働いた。ありがとうございます – krish

+0

私はWebフォームでファイルをアップロードしています。バックエンドでどのように処理すればよいですか?私は私のモデルでmodels.FileField()を使用しています。 – krish

+0

これは本当に別の質問です。私は[docs](https://docs.djangoproject.com/en/1.11/topics/http/file-uploads/#basic-file-uploads)から始め、あなたが立ち往生したら新しい質問をします。 – Alasdair

関連する問題