<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                [TOC=1,5] >[success] # 創建表思路 >先列出需求表,在填寫表的字段例如: ~~~ class UserProfile(models.Model): """用戶信息表""" pass class Role(models.Model): """角色表""" pass class CustomerInfo(models.Model): """客戶信息表""" pass class CustomerFollowUp(models.Model): """客戶跟蹤表""" pass class Course(models.Model): """課程表""" pass class ClassList(models.Model): """班級列表""" pass class CourseRecord(models.Model): """上課記錄""" pass class Students(models.Model): """學生表""" pass class StudyRecord(models.Model): """上課記錄""" pass class Branch(models.Model): """校區""" pass ~~~ >[danger] ##### 后續表 >權限 >問卷調查 >知識管理 >合同 * * * * * <br> >[success] # 表字段設計 <br> * * * * * >[danger] ##### 用戶登錄-UserProfile >**字段介紹** >user ----》 和django自帶的User 字段進行一對一關聯 >name ----》 用戶姓名 >role -----》 權限,用戶和權限進行多對多,一個用戶有多個權限,多個權限可以對一個用戶 ~~~ class UserProfile(models.Model): """用戶信息表""" user = models.OneToOneField(User) name = models.CharField(max_length=64,verbose_name="姓名") role = models.ManyToManyField('Role',blank=True,null=True) def __str__(self): return self.name ~~~ <br> * * * * * >[danger] ##### 權限角色表-Role >**字段介紹** >name ----》 權限名稱 ~~~ class Role(models.Model): """角色表""" name =models.CharField(max_length=64,unique=True) menus = models.ManyToManyField('Menus',blank=True) def __str__(self): return self.name ~~~ <br> * * * * * >[danger] ##### 客戶信息表-CustomerInfo >**字段介紹** >name -----》 客戶名字 contact_type_choice ----》 ((0,'qq'),(1,'微信'),(2,'手機號')) 聯系方式 concat_type -----》聯系方式默認0,和上面打的字段是choice關系 consult_courses ----》咨詢內容和課程表多對多,可以咨詢多個課程,多個課程可以被咨詢 consult_content ----》咨詢內容 source_choices -----》 ((0,"qq群"), (1,'51TOC'), (2,"介紹人") )獲取途徑 source -----》獲取途徑默認0,和上面打的字段是choice關系 referral_from ---》"轉介紹" 自關聯一對多,介紹人 status_choices -----》 ((0,'未報名'),(1,"已報名"),(2,'已退學')) status -----》學員狀態默認0,和上面打的字段是choice關系 date ----》創建時間 consultant----》課程顧問和用戶一對多,多個用戶都可以是課程顧問 ~~~ class CustomerInfo(models.Model): """客戶信息表""" name = models.CharField(max_length=64,default=None) contact_type_choice = ((0,'qq'),(1,'微信'),(2,'手機號')) concat_type = models.SmallIntegerField(choices=contact_type_choice,default=0) consult_courses = models.ManyToManyField('Course',verbose_name='咨詢課程') consult_content = models.TextField(verbose_name='咨詢內容') source_choices = ((0,"qq群"), (1,'51TOC'), (2,"介紹人") ) source = models.SmallIntegerField(choices=source_choices) referral_from = models.ForeignKey('self',blank=True,null=True,verbose_name="轉介紹") status_choices = ((0,'未報名'),(1,"已報名"),(2,'已退學')) status = models.SmallIntegerField(choices=status_choices) date = models.DateField(auto_now_add=True) consultant = models.ForeignKey("UserProfile",verbose_name='課程顧問') ~~~ <br> * * * * * >[danger] ##### 客戶跟蹤表-CustomerFollowUp >**字段介紹** >customer ----》 和customerInfo用戶信息表一對多 >content ----》 跟蹤內容記錄 >user ----》跟進人和userprofile 用戶表一對多 >status_choices -----》報名狀態((0,"近期無報名"), (1, "一個月報名"), (2, "2周內報名"),(3, "已報名"),) >status -----》和上面字段關聯 >date ------》創建時間 ~~~ class CustomerFollowUp(models.Model): """客戶跟蹤表""" customer = models.ForeignKey('CustomerInfo',verbose_name="用戶名字") content = models.TextField(verbose_name="跟蹤內容") user = models.ForeignKey('UserProfile',verbose_name="跟進人") status_choices = ((0,"近期無報名"), (1, "一個月報名"), (2, "2周內報名"), (3, "已報名"), ) status = models.SmallIntegerField(choices=status_choices,verbose_name='學生報名') date = models.DateField(auto_now_add=True,verbose_name="創建時間") def __str__(self): return self.customer ~~~ <br> * * * * * >[danger] ##### 課程表-Course >**字段介紹** >name -----》'課程名字' unique=True唯一 price ----》"價格" period-----》課程周期(月)' outline -----》"大綱" ~~~ class Course(models.Model): """課程表""" name = models.CharField(verbose_name='課程名字',max_length=64,unique=True) price = models.PositiveIntegerField(verbose_name="價格") period = models.SmallIntegerField(verbose_name='課程周期(月)',default=5) outline = models.TextField(verbose_name="大綱") def __str__(self): return self.name ~~~ <br> * * * * * >[danger] ##### 班級列表-ClassList >**字段介紹** >course ----》'Course'一對多 semester----》"學期" teachers -----》老師 'UserProfile',多對多,一個班級多個老師 start_date --------》('開班日期') graduate_date -------》'畢業日期' branch --------》和校區一對多 Branch 表 ~~~ class ClassList(models.Model): """班級列表""" branch = models.ForeignKey('Branch',verbose_name="校區") course = models.ForeignKey('Course') semester = models.SmallIntegerField(verbose_name="學期") teachers = models.ManyToManyField('UserProfile',verbose_name="老師") start_date = models.DateField('開班日期') graduate_date = models.DateField('畢業日期',blank=True,null=True) def __str__(self): return "%s(%s)期"%(self.course.name,self.semester) class Meta: unique_together = ('branch','course','semester') verbose_name_plural =verbose_name = "班級" ~~~ <br> * * * * * >[danger] ##### 上課記錄-CourseRecord >**字段介紹** > class_grade---->上課班級 和ClassList表一對多 day_num ----》"課程節次" teacher ----》老師表和UserProfile一對多 title -------》本節主題" content -----》'本節內容' has_homework ------》'本節有作業' homework --------》"作業需求", date = models.DateTimeField(auto_now_add=True) ~~~ class CourseRecord(models.Model): """上課記錄""" class_grade = models.ForeignKey('ClassList',verbose_name="上課班級") day_num = models.SmallIntegerField(verbose_name="課程節次") teacher = models.ForeignKey('UserProfile') title = models.CharField("本節主題",max_length=64) content = models.TextField('本節內容') has_homework = models.BooleanField('本節有作業',default=True) homework = models.TextField("作業需求",blank=True,null=True) date = models.DateTimeField(auto_now_add=True) def __str__(self): return "%第(%s)節"%(self.class_grade,self.day_num) class Meta: unique_together = ("class_grade","day_num") verbose_name = '上課記錄' verbose_name_plural = verbose_name ~~~ <br> * * * * * >[danger] ##### 學習記錄-StudyRecord >**字段介紹** >curse_record ----》 和上課記錄一對多('CourseRecord') student = ---->學生和('Student')一對多 score_choices ----》 ((100,"A"),(59,"不及格")) score----》學生成績和上面字段關聯 show_choices ----》 ((0,"缺勤"),(1,"簽到"),(2,"遲到/早退")) show_status ---》學生上課記錄和上面字段關聯 note----》"備注" ~~~ class StudyRecord(models.Model): """學習記錄""" course_record = models.ForeignKey('CourseRecord') student = models.ForeignKey('Student') score_choices = ((100,"A"),(59,"不及格")) score = models.SmallIntegerField(choices=score_choices) show_choices = ((0,"缺勤"),(1,"簽到"),(2,"遲到/早退")) show_status = models.SmallIntegerField(choices=show_choices,default=1) note = models.TextField("備注",null=True,blank=True) def __str__(self): return "%s %s %s"%(self.course_record,self.student,self.score) class Meta: verbose_name_plural =verbose_name = "學習記錄" ~~~ <br> * * * * * >[danger] ##### 學員表-Student >**字段介紹** >customer ----》用戶信息'CustomerInfo' class_grades ----》'班級'和 classlist 多對多 ~~~ class Student(models.Model): """學員表""" customer = models.ForeignKey('CustomerInfo') class_grades = models.ManyToManyField('ClassList',verbose_name='班級') class Meta: verbose_name_plural =verbose_name = "學員" ~~~ <br> * * * * * >[danger] ##### 校區-Branch >**字段介紹** >name ----》名字 addr ---》地址 ~~~ class Branch(models.Model): """校區""" name = models.CharField(max_length=64,unique=True) addr = models.CharField(max_length=256,verbose_name="地址",null=True,blank=True) class Meta: verbose_name_plural="校區" ~~~ * * * * * <br> >**字段介紹** >name ----》 addr ---》地址 ~~~ class Menus(models.Model): """動態菜單""" name = models.CharField(max_length=64) url_name = models.CharField(max_length=64) url_type_chooice = ((0,'absoulte'),(1,'dynamic')) url_type = models.SmallIntegerField(choices=url_type_chooice,default=0) def __str__(self): return self.name class Meta: unique_together = ('name','url_name') ~~~ >[success] # 菜單表分析 >可以自定義網址,也可以用django urlname的屬性來做相對的地址 **自定義地址**: ![](https://box.kancloud.cn/373162412c5ae36d942eac20535facf5_513x165.png) **固定地址** ![](https://box.kancloud.cn/91aa2c5844c16708323fb6a49f23e2db_557x174.png) ![](https://box.kancloud.cn/2789e95f171783c64f3066cacb143e21_598x132.png)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看