django实现动态菜单的方式

摘要:
1.来自django的模型。contrib公司。授权。modelimportUser#django附带一个classUserProfile(models.Model):“”“使用django自己的用户控制权限的用户表”“”User=models。OneToOneField(User,on_delete=models.CASCADE)#django附带一个用户表用户模块,与用户定义的用户n

1、model

from django.contrib.auth.models import  User  #django自带
class UserProfile(models.Model):
  """使用django 自带的用户控制权限的用户表"""
    user = models.OneToOneField(User,on_delete=models.CASCADE) # django自带用户表User模块和自定义的用户关联
name = models.CharField(max_length=32)
roles = models.ManyToManyField("Role",blank=True,null=True)

def __str__(self):
return self.name

class Role(models.Model):
"""角色表"""
name = models.CharField(unique=True,max_length=32)
menus = models.ManyToManyField("Menu")
def __str__(self):
return self.name

2、view
def app_index(request):
return render(request, 'kingadmin/app_index.html')

3、html
<div class="col-sm-3 col-md-2 sidebar">
<ul class="nav nav-sidebar">
{% for role in request.user.userprofile.roles.all %} <!--找到登陆用户的角色-->
<hr>
{% for menu in role.menus.all %} <!--找到角色对应的menu-->
                  <li>
<a href="http://t.zoukankan.com/{% if menu.url_type == 0 %}{% url menu.url_name %}{% else %} {{ menu.url_name }}{% endif %}" > <!--展示该用户的菜单-->
{{ menu.name }}
</a>
</li>
{% endfor %}
{% endfor %}

</ul>
</div>

免责声明:文章转载自《django实现动态菜单的方式》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇求逆向超级素数转:GridView鼠标移动行变色 (http://www.cnblogs.com/lovenets/articles/808071.html)[同ceng]下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

PyMongo 常见问题

PyMongo是线程安全的吗PyMongo是线程安全的,并且为多线程应用提供了内置的连接池 PyMongo是进程安全的吗PyMongo不是进程安全的,如果你在fork()中使用MongoClient实例,必须小心。具体来说,MongoClient实例不能从父进程复制到子进程,父进程和每个子进程必须创建属于自己的MongoClient实例。由于本身的不兼容性...

django 国际化

参考文档: https://docs.djangoproject.com/zh-hans/2.2/topics/i18n/translation/ https://blog.csdn.net/qq_36963372/article/details/88788463 https://www.jianshu.com/p/b7fd0658989d 配置 se...

python Django 用户管理和权限认证

Auth认证系统 from django.contrib.auth import login, logout, authenticate from django.contrib.auth.models import User # 用户登陆 user = authenticate(username, password) if user: if us...

django models def __str__(self)

1、 https://blog.csdn.net/wyongkang/article/details/116229846 https://my.oschina.net/u/4380404/blog/4094774 2、 https://www.zhihu.com/question/273973677/answer/371354850 3、 https://...

Django中常见字段类型简介

字段类型选择: AutoField(Field) - int自增列,必须填入参数 primary_key=True BigAutoField(AutoField) - bigint自增列,必须填入参数 primary_key=True 注:当model中如果没有自增列,则自动会创建一个列名...

django admin字段设置大全

# 在列表页显示的字段,默认会显示所有字段,有对应的方法可以重写 list_display = ('__str__',) # 在列表页显示的字段中,可以链接到change_form页面的字段 list_display_links = () # 右侧的筛选,必须是字段,可以继承自SimpleListFilter来自定义筛选字段和规则,SimpleLi...