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 %}
技术改变命运