python筆記27(CRM4)

S21day27 crm系統
今日內容:
 1.Crm業務開發
  ①部門管理
  ②用戶管理
  ③校區、課程管理
  ④客戶管理
  ⑤學院管理
 2.權限系統應用

任務:
 1. 建立項目
 2. 部門管理(ModelForm)
  - 部門列表
  - 添加
  - 編輯
  - 刪除
 3. 用戶管理
  - 用戶列表
   - choice選項
   - FK
   - M2M
  - 用戶添加
   - form對象循環,無需再進行每一個字段的編寫。
   - 頁面form-control樣式,重寫__init__方法,動態爲每一個字段進行設置。
   - 本地化,form默認的英文錯誤提示信息轉換成中文。
   - 密碼的md5加密(ModelForm的鉤子函數)
    
    class UserModelForm(forms.ModelForm):
     class Meta:
      model = models.UserInfo
      fields = "__all__"
     
     def __init__(self, *args, **kwargs):
      # 在父類的初始化方法中將7個字段當成字典放到了 self.fields 中。
      super(UserModelForm, self).__init__(*args, **kwargs)
      
      for key, field in self.fields.items():
       field.widget.attrs['class'] = 'form-control'
     
     def clean_password(self):
      """
      密碼對應的鉤子方法
      :return:
      """
      user_input_pwd = self.cleaned_data['password']
      return md5(user_input_pwd)
  - 用戶編輯和用戶刪除
  
 4. 校區、課程、班級管理
  
 5. 客戶管理
  - 公戶管理
  - 私戶管理
  
 6. 跟進記錄
  
  
 7. 權限的應用
  參考使用文檔:readme
  
 
總結:
 1. 學會開發技能(通用)
 2. 使用rbac組件(通用)
 
 之後公司項目開發:
  - 對rbac相關表:
   - 菜單
   - 權限
   - 角色 (權限角色關係)
  
  - 目前:權限信息的錄入和分配(基於admin來作)
  
  - 權限信息錄入不完整(錄完)
  
  
個人感想:
 
  
做業:權限表中的增刪改查(ModelForm實現)
 
  
  
  
一、建立crm項目s21crm,註冊app爲crm
二、複製rbac、刪除數據庫遷移記錄、註冊rbac
三、在rbac下的models.py中,修改UserInfo類爲AbStractUserInfo
  class AbStractUserInfo(models.Model):
  """
  用戶表
  """
  username = models.CharField(verbose_name='用戶名', max_length=32)
  password = models.CharField(verbose_name='密碼', max_length=64)
  roles = models.ManyToManyField(verbose_name='關聯角色', to='Role')
  class Meta:
   abstract = True  # 表示讓django的orm不在爲該類在數據庫中建立表
 
 在crm下的models.py中,添加UserInfo類,繼承AbStractUserInfo
  from django.db import models
  from rbac.models import AbStractUserInfo

  # Create your models here.
  class Department(models.Model):
   """
   部門表
   """
   title = models.CharField(verbose_name='部門', max=32)
  class UerInfo(AbStractUserInfo):    """    用戶表    """    depart = models.ForeignKey(verbose_name='部門', to='Department')    email = models.EmailField(verbose_name="郵箱")    phone = models.CharField(verbose_name="手機", max_length="32")  在rbac中註釋admin.site.register(models.UserInfo)  執行數據庫操做:python manage.py makemigrations  python manage.py migrate 四、部門管理:  一、繼承layout.html模板(layout.html中先註釋掉{% load rbac %}{% get_menu request %})  二、建立views文件夾,在文件夾下建立對應的視圖文件                                                      
相關文章
相關標籤/搜索