14-crm项目-kingadmin,动态url菜单优化

点击客户库,就要调整到对应的页面客户表,怎么实现?

这个跳转的逻辑是怎么样的?

第一点:前端有include的用法,就是把另一个页面的内容包含到这个页面,但是这里用include是不行的,

因为不是单纯静态的东西,客户表有很多的变量,没有找到变量就会报错,

第二点:点击这个页面的时候,使用ajax跳转到对应的页面,

但是这个也不行,会导致查询功能有问题,

第三点:我们配置菜单的时候,都有对应的url别名,把这个配置成为动态的,加一个类型,

/king_admin/crm/customer/

class Menu(models.Model):
    '''菜单'''
    name = models.CharField(max_length=32)
    url_type_choices = ((0, 'alias'), (1, 'absolute_url'))
    url_type = models.SmallIntegerField(choices=url_type_choices, default=0)
    url_name = models.CharField(max_length=64)

    def __str__(self):
        return self.name

    class Meta:
        verbose_name_plural = '菜单栏'

把url从相对的改为绝对的,customer_list  -----改为/king_admin/crm/customer/

这样直接就去访问这个url了,

前端做一个判断;

        {% for  role in request.user.roles.all %}
          {% for menu in role.menus.all %}
            <li class=""><a href="{% if menu.url_type == 0 %}{%  url  menu.url_name %} {% else %}{{ menu.url_name }}{% endif %}">{{ menu.name }}</a></li>
          {% endfor %}
        {% endfor %}

 

原文地址:https://www.cnblogs.com/andy0816/p/13724892.html