Недопустимая проверка CSRF с помощью Django

#python #html #django #django-forms

#python #HTML #django #django-forms

Вопрос:

У меня есть созданная мной HTML-форма, и я пытаюсь заставить Django обработать. Вот мой main.html (сокращенный):

       <form action="/polls/thanks/" method="post" name = 'tag_name'>
            {% csrf_token %}

            <div class="w-3/4 py-10 px-8">
                <table class="table-auto">

                    <thead>
                        <tr>
                            <th class="py-10 h-4">
                                <div class="mr-64">
                                    <input type="checkbox" class="form-checkbox h-8 w-8">
                                    <label class="ml-4">test</label>

                                </div>
                            </th>
                        </tr>
  

и вот views.py:

 from django.http import HttpResponseRedirect
from django.shortcuts import render



def get_name(request):


    if request.method == 'POST':

        form = request.POST.get('tag_name')
        print(form)


        if form.is_valid():


            return HttpResponseRedirect('/polls/thanks/')




    return render(request, 'main.html', {'form': 'mainform'})

def thanks(request):
    form = request.POST.get('tag_name')
    print(form)
    if form.is_valid():
        print(form.cleaned_data)

    return render(request, 'thanks.html')

  

Вот /mysite/urls.py:

 from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('polls/', include('polls.urls')),
    path('admin/', admin.site.urls),


]
  

и вот /mysite/polls/urls.py

 
from . import views

urlpatterns = [
    path('', views.get_name, name='index'),
    path('thanks/', views.thanks, name='thanks/'),

]
  

тем не менее, он по-прежнему возвращает недопустимую проверку CSRF, если я попытаюсь отправить форму

Кто-нибудь знает, как это исправить?

Спасибо

Комментарии:

1. Можете ли вы поделиться своим urls.py , которое сопоставлено с этим?

2. Веб-страница загружается, поэтому я сомневаюсь, что в этом проблема, просто когда я отправляю вместо этого, это выдает мне ошибку CSRF для формы. Я все равно прикреплю его

3. django.middleware.csrf.CsrfViewMiddleware Включено ли оно в ваше промежуточное ПРОГРАММНОЕ обеспечение? Можете ли вы поделиться своим settings.MIDDLEWARE

4. MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ]

5. можете ли вы проверить на вкладке network консоли браузера, чтобы убедиться, что файл cookie CSRF установлен правильно? Если вы устанавливаете безопасный файл cookie, а ваше приложение работает по протоколу http, серверная часть не получит файл cookie CSRF