zoukankan      html  css  js  c++  java
  • django在模板中使用权限

    在settings.TEMPLATES.OPTIONS.content_processors下,因为添加了 django.contrib.auth.context_processors.auth上下文处理器。

    因此在模板中可以直接通过perms来获取用户的所有权限, 示例代码如下:

    {%  if perms.front.add_article  % }

      <a href="/article/add/" >添加文章</a>

    {% endif %}

    1、在app01/templates/ index.html里面定义模板

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        首页
        {% if perms.app01.add_article %}
            <a href="#" > 添加文章 </a>
        {% endif %}
    
    </body>
    </html>

    2、在app01/views.py里定义 index视图

    #在模板中使用权限
    def index(request):
        return  render( request, 'index.html')

    3、定义路由

    from django.contrib import admin
    from django.urls import path
    from app01 import views as app01_views
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path("test/", app01_views.test),
        path("login/", app01_views.my_login, name = "login"),
        path("logout/", app01_views.my_logout, name = "logout"),
        path("profile/", app01_views.profile, name="profile"),
        path("add_permission/", app01_views.add_permission, name="add_permission" ),
        path("oper_permission/", app01_views.operate_permission, name="oper_permission" ),
        path("add_article/", app01_views.add_article, name="add_article" ),
        path("oper_group", app01_views.operate_group, name="oper_group"),
        path("", app01_views.index, name="index"),
    ]

    4、访问http://127.0.0.1:8080/后效果如下

    说明,用户有add_article权限

     

     

     

     

    5、删除掉 auth_group_permissions里面 19的权限后,再访问http://127.0.0.1:8080/

     

     由于group1没有对应的19权限了,所有页面中不会显示添加文章的权限

    6、直接在app01_user_user_permissions表里,给用户1添加19权限后,再访问http://127.0.0.1:8080/

    添加文章的权限又出现了

     

  • 相关阅读:
    详解JavaScript中的this
    java静态代理与动态代理简单分析
    BZOJ1263 [SCOI2006]整数划分
    BZOJ1258 [CQOI2007]三角形
    BZOJ1237 [SCOI2008]配对
    BZOJ1257 [CQOI2007]余数之和
    BZOJ1103 [POI2007]大都市
    BZOJ1061 [NOI2008]志愿者招募
    BZOJ1050 [HAOI2006]旅行
    BZOJ1055 [HAOI2008]玩具取名
  • 原文地址:https://www.cnblogs.com/harryTree/p/11827799.html
Copyright © 2011-2022 走看看