首先,在使用Django内置权限管理系统时,settings.py文件要添加
如何在模板进行权限检查呢?
根据官网说明 https://docs.djangoproject.com/en/1.11/topics/auth/default/#permissions ,已登录用户权限保存在模板变量中,是权限模板代理django.contrib.auth.context_processors.PermWrapper的一个实例,
具体可以查看django/contrib/auth/context_processors.py源码
测试用例:
测试过程中,发现变量压根不存在,没有任何输出;好吧,只能取Debug Django的源码了
测试访问接口,发现有的接口有打印权限信息,有的没有,似乎恍然醒悟
render和render_to_response区别
render是比render_to_reponse更便捷渲染模板的方法,会自动使用RequestContext,而后者需要手动添加:
其中RequestContext是django.template.Context的子类.接受request和context_processors,从而将上下文填充渲染到模板
问题已经很明确,由于使用了render_to_response方法,没有手动添加context_instance=RequestContext(request)导致模板不能使用变量