Ошибка проверки CSRF в методе формы GET

Я получаю сообщение об ошибке CSRF verification failed. Request aborted. при попытке отправить форму. Я использовал метод GET, но получаю сообщение об ошибке. Я также добавил токен {% csrf_token %}, просто чтобы быть уверенным, но ошибка все еще существует.

Пример HTML:

<body>
    <form action="/entry/" method="get" name="Form1"><br>
        {% csrf_token %}
        <select name="Date" size="1">
            <option>30</option>
        </select>
        &nbsp;
        <select name="Month">
            <option>09</option>
        </select>
        <select name="Year">
            <option>2015</option>
        </select>
        <input id="Save" style="height: 50px; width: 100px;" type="submit" value="Save"></form>
</body>

файл views.py

def getuser(request):
    return render(request, 'index.html')

def putrecord(request):
    date = request.GET['Date']
    print date
    month = request.GET['Month']
    year = request.GET['Year']
    time_stamp = date + '/' + month + '/' + year
    print time_stamp
    return render(request, 'index.html', {})

urls.py

urlpatterns = patterns('',

    url(r'^expenseapp/', getuser),
    url(r'^entry/', putrecord),
)

У меня также есть CsrfViewMiddleware в моем файле настроек. Как я могу избавиться от этой ошибки?


person user828647    schedule 03.10.2015    source источник
comment
вы пробовали удалить куки из браузера?   -  person ahmed    schedule 03.10.2015
comment
Спасибо, я думаю, это сработало.. не знаю, почему я не попробовал это раньше   -  person user828647    schedule 04.10.2015


Ответы (2)


Попробуйте удалить куки из вашего браузера, CSRF использует куки для хранения токена.

person ahmed    schedule 04.10.2015

Тег шаблона токена CSRF не требуется для форм, отправленных через GET. Простое удаление токена из вашей формы должно позволить ему достичь вашего метода обработчика представления.

Аналогичный вопрос и ответ: Django: для формы POST требуется CSRF? GET нет?

person TeaPow    schedule 03.10.2015
comment
Спасибо за ответ. Я также пытался отправить без токена csrf, но это не сработало. В любом случае, я удалил файлы cookie, а также токен csrf, и наконец-то запустил его. - person user828647; 04.10.2015