其他分享
首页 > 其他分享> > CRM项目_权限系统_crm业务_ 其他

CRM项目_权限系统_crm业务_ 其他

作者:互联网

CRM项目

1.权限系统

1.1问题

  1. 表的划分

    • 用户表:id,name

    • 角色表:id,title

    • 用户角色关系表:id,userid,角色id

    • 权限表:id,url

    • 角色权限关系表:id,角色id,权限id

1.2 adimin

1.3 基本配置

1.4 登录和添加session

1.5 添加中间件

1.6 编写一级菜单

1.7 编写二级菜单

1.8 非菜单归属之动态选中

1.9 导航条

1.10 粒度控制到按钮

1.11问题总结

  1. 权限有几张表?

  2. 简述权限流程?

  3. 为什么要把权限放入session?

  4. 静态文件和模块文件

  5. 相关技点。

  6. 二级菜单时,如何构造的数据结构?

  7. 非菜单的权限归属?

  8. 层级导航?

  9. 粒度控制到按钮?

  10. 如何实现的权限系统?

  11. 为什么要在中间件中做校验?

  12. 写出流程(思维导图)

2.crm业务

2.1 modelForm

2.2 简单化角色权限管理

  

### 2.3 forloop

- 在{% for %}循环内部,可以访问一个名为forloop的模板变量。这个变量有若干属性,通过它们可以获知循环进程的一些信息。

  ```python
  forloop.counter
  forloop.counter 的值是一个整数,表示循环的次数。这个属性的值从 1 开始,因此第一次循环时,forloop.counter 等于 1 。
  
  {% for item in todo_list %}
  <p>{{ forloop.counter }}: {{ item }}</p>
  {% endfor %}
  forloop.counter0
  forloop.counter0 与 forloop.counter 类似,不过是从零开始的。第一次循环时,其值为 0 。
  
   
  
  forloop.revcounter
  forloop.revcounter的值是一个整数,表示循环中剩余的元素数量。第一次循环时, forloop.revcounter 的值是序列中要遍历的元素总数。最后一次循环时, forloop.revcounter的值为 1 。
  
   
  
   forloop.revcounter0
  forloop.revcounter0 与 forloop.revcounter类似,不过索引是基于零的。第一次循环时, forloop.revcounter0的值是序列中元素数量减去一。最后一次循环时, forloop.revcounter0 的值为 0 。
  
   
  
  forloop.first
  forloop.first 是个布尔值,第一次循环时为 True 。需要特殊处理第一个元素时很方便:
  
  {% for object in objects %}
      {% if forloop.first %}
          <li class="first">
      {% else %}
          <li>
      {% endif %}
      {{ object }}
      </li>
  {% endfor %}
  
  forloop.last
  
  forloop.last是个布尔值,最后一次循环时为True 。经常用它在一组链接之间放置管道符号:
  
  {% for link in links %}
      {{ link }}{% if not forloop.last %} | {% endif %}
  {% endfor %}
  
  
  上述模板代码的输出可能是:
  
  Link1 | Link2 | Link3 | Link4
  
  此外,还经常用它在一组单词之间放置逗号:
  
  <p>Favorite places:</p>
  {% for p in places %}
      {{ p }}{% if not forloop.last %}, {% endif %}
  {% endfor %}
  
  forloop.parentloop
  
  在嵌套的循环中, forloop.parentloop引用父级循环的 forloop 对象。下面举个例子:
  
  {% for country in countries %}
      <table>
      {% for city in country.city_list %}
          <tr>
          <td>Country #{{ forloop.parentloop.counter }}</td>
          <td>City #{{ forloop.counter }}</td>
          <td>{{ city }}</td>
          </tr>
      {% endfor %}
      </table>
  {% endfor %}
  
  
  小贴士
  forloop 变量只在循环内部可用。模板解析器遇到 {% endfor %} 时, forloop 随之消失。 
  上下文和 forloop 变量 
  在 {% for %} 块中,现有变量会让位,防止覆盖 forloop 变量。Django 把移动的上下文放到 
  forloop.parentloop 中。通常,你无须担心,但是如果有名为 forloop 的模板变量(不建议这 
  么做),在 {% for %} 块中会重命名为 forloop.parentloop 。
  ————————————————
  版权声明:本文为CSDN博主「似水@流年」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
  原文链接:https://blog.csdn.net/mr_hui_/article/details/88310822

2.4 输入框互斥

2.5 formset

3.其他

3.1 家庭树

标签:__,CRM,models,menu,request,django,import,权限,crm
来源: https://www.cnblogs.com/fxy1024/p/16386173.html