The CRM project design field table structure

def __str __ (self): #__unicode__ in version 2.7

SmallIntegerFIeld integer, stored in binary form

DateField (auto_now_add = True) Automation

PpsitiveSmallIntegerField () positive number

settings.py: TIME_ZONE = 'Asia / Shanghai' time zone

from django.db import models
from django.contrib.auth.models import  User

# Create your models here.


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): #__unicode__
        return self.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


class CustomerInfo(models.Model):
    """客户信息表"""
    name = models.CharField(max_length=64,default=None)
    contact_type_choices = ((0,'qq'),(1,''), (2'Micro letterMobile ' )) 
    contact_type = models.SmallIntegerField (= contact_type_choices choices, default = 0) 
    Contact = models.CharField (= 64 MAX_LENGTH, UNIQUE = True) 
    source_choices = ((0, ' QQ group ' ), 
                      ( . 1, ' 51CTO ' ), 
                      ( 2, ' Baidu promotion ' ), 
                      ( 3, ' know almost ' ), 
                      ( 4, ' referrals ' ), 
                      (5,'其它'),
                      )
    source = models.SmallIntegerField(choices=source_choices)
    referral_from = models.ForeignKey("self",blank=True,null=True,verbose_name="转介绍")
    consult_courses = models.ManyToManyField("Course",verbose_name="咨询课程")
    consult_content = models.TextField(verbose_name="咨询内容")
    status_choices = ((0,'No Registration'),(1,'已报名'),(2,'已退学'))
    status = models.SmallIntegerField(choices=status_choices)
    consultant = models.ForeignKey("UserProfile",verbose_name="课程顾问")
    date = models.DateField(auto_now_add=True)

    def __str__(self):
        return self.name

class Student(models.Model):
    """学员表"""
    customer = models.ForeignKey("CustomerInfo")
    class_grades = models.ManyToManyField("ClassList")

    def __str__(self):
        return self.customer


class CustomerFollowUp(models.Model):
    """客户跟踪记录表"""
    customer = models.ForeignKey("CustomerInfo")
    content = models.TextField(verbose_name="跟踪内容")
    user = models.ForeignKey("UserProfile",verbose_name="跟进人")
    status_choices   = ((0, ' no recent enrollment plan ' ), 
                       ( 1, ' within one month of registration ' ), 
                       ( 2, ' within two weeks of registration ' ), 
                       ( 3, ' have signed ' ), 
                       ) 
    Status = Models .SmallIntegerField (choices = status_choices) 
    DATE = models.DateField (auto_now_add = True)
     DEF  __str__ (Self):
         return self.content 


class Course, (models.Model):
    "" " Curriculum " "" 
    name = models.CharField (verbose_name = ' Course Name ' , 64-max_length =, UNIQUE = True) 
    . Price = models.PositiveSmallIntegerField () 
    period = models.PositiveSmallIntegerField (verbose_name = " Course period (months) " , default = 5 ) 
    outline = models.TextField (verbose_name = " outline " ) 

    DEF  __str__ (Self):
         return self.name 


class classList (models.Model):
     " "" class list "" "
    branch = models.ForeignKey("Branch")
    course = models.ForeignKey("Course")
    class_type_choices = ((0,'脱产'),(1,'周末'),(2,'网络班'))
    class_type = models.SmallIntegerField(choices=class_type_choices,default=0)
    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','class_type','course','semester') 


Class CourseRecord (models.Model):
     "" " school record " "" 
    class_grade = models.ForeignKey ( " classList " , verbose_name = " class class " ) 
    day_num = models.PositiveSmallIntegerField (verbose_name = " Course Session " ) 
    Teacher = models.ForeignKey ( " the UserProfile " ) 
    title = models.CharField ( " topics in this section " , MAX_LENGTH = 64 ) 
    Content = models.TextField ( "This Section " )
    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第(%s)节" %(self.class_grade,self.day_num)

    class Meta:
        unique_together = ('class_grade','day_num')



class StudyRecord(models.Model):
    """学习记录表"""
    course_record = models.ForeignKey("CourseRecord")
    student = models.ForeignKey("Student")

    score_choices = ((100,"A+"),
                     (90,"A"),
                     (85,"B+"),
                     (80,"B"),
                     (75,"B-"),
                     (70,"C+"),
                     (60,"C"),
                     (40,"C-"),
                     (-50,"D"),
                     (0,"N/A"), #not avaliable
                     (-100,"COPY"), #not avaliable
                     )
    score Models.SmallIntegerField = (= score_choices choices, default = 0) 
    show_choices = ((0, ' absence ' ), 
                    ( 1, ' checked in ' ), 
                    ( 2, ' late ' ), 
                    ( 3, ' leave early ' ), 
                    ) 
    show_status = models.SmallIntegerField (choices = show_choices, default = 1 ) 
    note = models.TextField ( " performance Remarks " , blank = True, null = True) 

    DATE= models.DateTimeField(auto_now_add=True)

    def __str__(self):

        return "%s %s %s" %(self.course_record,self.student,self.score)

class Branch(models.Model):
    """校区"""
    name = models.CharField(max_length=64,unique=True)
    addr = models.CharField(max_length=128,blank=True,null=True)
    def __str__(self):
        return self.name



class Menus(models.Model):
    """动态菜单"""
    name = models.CharField(max_length=64)
    url_type_choices = ((0,'absolute'),(1,'dynamic'))
    url_type = models.SmallIntegerField(choices=url_type_choices,default=0)
    url_name = models.CharField(max_length=128)

    def __str__(self):
        return self.name

    class Meta:
        unique_together = ('name','url_name')
models.py

Guess you like

Origin www.cnblogs.com/jintian/p/11300659.html