技术 django
Django1.6 ...

0 修改setting.py 文件(django 1.6默认已存在,不用修改)

MIDDLEWARE_CLASSES选项中添加
django.middleware.csrf.CsrfViewMiddleware

1 修改template对应的views,比如:

from django.core.context_processors import csrf
def rules_show(request):
    c = {}
    c.update(csrf(request)) #about csrf
    rules_sections = get_rules()
    c.update({'rules_sections':rules_sections})

2 修改template文件, 比如:

<form action="/rules/add" method="POST">{% csrf_token %} /*about csrf*/
<div style="display:none" class="input-group" id='add'>
    <input type='text' class="form-control" name='rules'>
    <span class="input-group-btn">
        <button class="btn btn-default" type="submit">提交</button>
    </span>
</div>
</form>

以上3步即可实现,对于报错

Forbidden (403)

CSRF verification failed. Request aborted.

Help

Reason given for failure:

CSRF cookie not set.

多数是因为对view函数设置的不正确,而只顾着设置POST的/rules/add对应的函数了。

排错过程首先是检查一下form中是否有csrftoken生成,如果没有则肯定是views中的函数有问题

"文章为作者独立观点, 不代表老订阅立场"

本站作者

每日荐书

在不完美的世界力求正常——读《公司的坏话》

书名:《公司的坏话》

作者:李天田(脱不花妹妹)

出版社:北京大学出版社

赞助商

广告