使用Django 1.97以下视图:
@staff_member_required
def admin_news_categories_json(request):
nodes_list = []
for node in NewsCategory.objects.filter(parent__isnull = True):
n = {
'id' : node.id
'title' : node.title,
}
nodes_list.append(n)
return HttpResponse(json.dumps(nodes_list))
每次加载时,都会导致CSFR令牌发生变化(旋转)。
它是通过管理表单中的ajax调用的,因此导致表单提交因CSFR令牌不匹配而失败。
如果我删除@staff_member_required装饰器,CSFR保持不变!我有csfr_exempt装饰器的另一个视图,该视图也改变了csfr标记。
这是一个已知的错误或功能吗? :)