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文件夾,在文件夾下建立對應的視圖文件