博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
代码d17
阅读量:5750 次
发布时间:2019-06-18

本文共 8828 字,大约阅读时间需要 29 分钟。

admin。py

from django.contrib import adminfrom crm import models# Register your models here.class CustomerAdmin(admin.ModelAdmin):    list_display = ('id','qq','source','consultant','content','status','date')    list_filter = ('source','consultant','date')    search_fields = ('qq','name')    raw_id_fields = ('consult_course',)    filter_horizontal = ('tags',)    list_editable = ('status',)class UserProfileAdmin(admin.ModelAdmin):    list_display = ('user','name')admin.site.register(models.Customer,CustomerAdmin)admin.site.register(models.CustomerFollowUp)admin.site.register(models.Enrollment)admin.site.register(models.Course)admin.site.register(models.ClassList)admin.site.register(models.CourseRecord)admin.site.register(models.Branch)admin.site.register(models.Role)admin.site.register(models.Payment)admin.site.register(models.StudyRecord)admin.site.register(models.Tag)admin.site.register(models.UserProfile,UserProfileAdmin)admin.site.register(models.Menu)

  apps.py

from django.apps import AppConfigclass CrmConfig(AppConfig):    name = 'crm'

  models.py

from django.db import modelsfrom django.contrib.auth.models import User# Create your models here.class Customer(models.Model):    '''客户信息表'''    name = models.CharField(max_length=32,blank=True,null=True)    qq = models.CharField(max_length=64,unique=True)    qq_name = models.CharField(max_length=64,blank=True,null=True)    phone = models.CharField(max_length=64,blank=True,null=True)    source_choices = ((0,'转介绍'),                      (1,'QQ群'),                      (2,'官网'),                      (3,'百度推广'),                      (4,'51CTO'),                      (5,'知乎'),                      (6,'市场推广')                      )    source = models.SmallIntegerField(choices=source_choices)    referral_from = models.CharField(verbose_name="转介绍人qq",max_length=64,blank=True,null=True)    consult_course = models.ForeignKey("Course",verbose_name="咨询课程")    content = models.TextField(verbose_name="咨询详情")    tags = models.ManyToManyField("Tag",blank=True,null=True)    status_choices = ((0,'已报名'),                      (1,'未报名'),                      )    status = models.SmallIntegerField(choices=status_choices,default=1)    consultant = models.ForeignKey("UserProfile")    memo = models.TextField(blank=True,null=True)    date = models.DateTimeField(auto_now_add=True)    def __str__(self):        return self.qq    class Meta:        verbose_name ="客户表"        verbose_name_plural ="客户表"class Tag(models.Model):    name = models.CharField(unique=True,max_length=32)    def __str__(self):        return self.name    class Meta:        verbose_name = "标签"        verbose_name_plural = "标签"class CustomerFollowUp(models.Model):    '''客户跟进表'''    customer = models.ForeignKey("Customer")    content = models.TextField(verbose_name="跟进内容")    consultant = models.ForeignKey("UserProfile")    intention_choices  = ((0,'2周内报名'),                          (1,'1个月内报名'),                          (2,'近期无报名计划'),                          (3,'已在其它机构报名'),                          (4,'已报名'),                          (5,'已拉黑'),                          )    intention = models.SmallIntegerField(choices=intention_choices)    date = models.DateTimeField(auto_now_add=True)    def __str__(self):        return "<%s : %s>" %(self.customer.qq,self.intention)    class Meta:        verbose_name = "客户跟进记录"        verbose_name_plural = "客户跟进记录"class Course(models.Model):    '''课程表'''    name = models.CharField(max_length=64,unique=True)    price = models.PositiveSmallIntegerField()    period = models.PositiveSmallIntegerField(verbose_name="周期(月)")    outline = models.TextField()    def __str__(self):        return self.name    class Meta:        verbose_name = "课程表"        verbose_name_plural = "课程表"class Branch(models.Model):    '''校区'''    name = models.CharField(max_length=128,unique=True)    addr = models.CharField(max_length=128)    def __str__(self):        return self.name    class Meta:        verbose_name = "校区"        verbose_name_plural = "校区"class ClassList(models.Model):    '''班级表'''    branch = models.ForeignKey("Branch",verbose_name="校区")    course = models.ForeignKey("Course")    class_type_choices = ((0,'面授(脱产)'),                          (1,'面授(周末)'),                          (2,'网络班')                          )    class_type = models.SmallIntegerField(choices=class_type_choices,verbose_name="班级类型")    semester = models.PositiveSmallIntegerField(verbose_name="学期")    teachers = models.ManyToManyField("UserProfile")    start_date = models.DateField(verbose_name="开班日期")    end_date = models.DateField(verbose_name="结业日期",blank=True,null=True)    def __str__(self):        return "%s %s %s" %(self.branch,self.course,self.semester)    class Meta:        unique_together = ('branch','course','semester')        verbose_name_plural = "班级"        verbose_name = "班级"class CourseRecord(models.Model):    '''上课记录'''    from_class = models.ForeignKey("ClassList",verbose_name="班级")    day_num = models.PositiveSmallIntegerField(verbose_name="第几节(天)")    teacher = models.ForeignKey("UserProfile")    has_homework = models.BooleanField(default=True)    homework_title = models.CharField(max_length=128,blank=True,null=True)    homework_content = models.TextField(blank=True,null=True)    outline = models.TextField(verbose_name="本节课程大纲")    date = models.DateField(auto_now_add=True)    def __str__(self):        return "%s %s" %(self.from_class,self.day_num)    class Meta:        unique_together = ("from_class", "day_num")        verbose_name_plural = "上课记录"class StudyRecord(models.Model):    '''学习记录'''    student = models.ForeignKey("Enrollment")    course_record = models.ForeignKey("CourseRecord")    attendance_choices = ((0,'已签到'),                          (1,'迟到'),                          (2,'缺勤'),                          (3,'早退'),                          )    attendance = models.SmallIntegerField(choices=attendance_choices,default=0)    score_choices = ((100,"A+"),                     (90,"A"),                     (85,"B+"),                     (80,"B"),                     (75,"B-"),                     (70,"C+"),                     (60,"C"),                     (40,"C-"),                     (-50,"D"),                     (-100,"COPY"),                     (0,"N/A"),                     )    score = models.SmallIntegerField(choices=score_choices,default=0)    memo = models.TextField(blank=True,null=True)    date = models.DateField(auto_now_add=True)    def __str__(self):        return "%s %s %s" %(self.student,self.course_record,self.score)    class Meta:        unique_together = ('student','course_record')        verbose_name_plural = "学习记录"class Enrollment(models.Model):    '''报名表'''    customer = models.ForeignKey("Customer")    enrolled_class = models.ForeignKey("ClassList",verbose_name="所报班级")    consultant = models.ForeignKey("UserProfile",verbose_name="课程顾问")    contract_agreed = models.BooleanField(default=False,verbose_name="学员已同意合同条款")    contract_approved = models.BooleanField(default=False,verbose_name="合同已审核")    date = models.DateTimeField(auto_now_add=True)    def __str__(self):        return "%s %s" %(self.customer,self.enrolled_class)    class Meta:        unique_together = ("customer","enrolled_class")        verbose_name_plural = "报名表"class Payment(models.Model):    '''缴费记录'''    customer = models.ForeignKey("Customer")    course = models.ForeignKey("Course",verbose_name="所报课程")    amount = models.PositiveIntegerField(verbose_name="数额",default=500)    consultant = models.ForeignKey("UserProfile")    date = models.DateTimeField(auto_now_add=True)    def __str__(self):        return "%s %s" %(self.customer,self.amount)    class Meta:        verbose_name_plural = "缴费记录"class UserProfile(models.Model):    '''账号表'''    user = models.OneToOneField(User)    name = models.CharField(max_length=32)    roles = models.ManyToManyField("Role",blank=True,null=True)    def __str__(self):        return self.nameclass Role(models.Model):    '''角色表'''    name = models.CharField(max_length=32,unique=True)    menus = models.ManyToManyField("Menu",blank=True)    def __str__(self):        return self.name    class Meta:        verbose_name_plural = "角色"class Menu(models.Model):    '''菜单'''    name = models.CharField(max_length=32)    url_name = models.CharField(max_length=64)    def __str__(self):        return self.name

  urls.py

from django.conf.urls import urlfrom crm import viewsurlpatterns = [    url(r'^$', views.index,name="sales_index"),    url(r'^customers/$', views.customer_list,name="customer_list"),]

  views.py

from django.shortcuts import render# Create your views here.def index(request):    return render(request,"index.html")def customer_list(request):    return render(request,"sales/customers.html")

  

转载于:https://www.cnblogs.com/cerofang/p/8519686.html

你可能感兴趣的文章
磨刀不误砍柴 - 配置适合工作学习的桌面环境
查看>>
自己动手写docker-3
查看>>
Java笔记-反射机制(一)
查看>>
OpenCV在Android中的集成与简单使用
查看>>
redux v3.7.2源码解读与学习之 applyMiddleware
查看>>
【React】为什么我不再使用setState?
查看>>
Git原理与高级使用(3)
查看>>
从JDK源码看Writer
查看>>
Express 结合 Webpack 实现HMRwi
查看>>
SQL模糊查询通配符_和%处理
查看>>
ssl免费申请
查看>>
我的友情链接
查看>>
mysql优化的相关知识
查看>>
基于protobuf的RPC实现
查看>>
ehcache 常用参数
查看>>
坚信每个人都能成为品牌
查看>>
Java语言的基础知识3
查看>>
JAVA的对象复制
查看>>
jquery要怎么写才能速度最快?(转)
查看>>
cisco设备IOS上传、备份、设置启动IOS
查看>>