其他分享
首页 > 其他分享> > 3.课程相关5张表设计

3.课程相关5张表设计

作者:互联网

1.课程主页面3张表

 

 

 

from django.db import models
from utils.MyBaseModel import Base

class CourseType(Base):
    title = models.CharField('课程类别', max_length=16)
    sequence = models.IntegerField('展示顺序', default=10)

    class Meta:
        db_table = 'tb_coursetype'

    def __str__(self):
        return self.title

class CourseTag(Base):
    title = models.CharField('课程标签', max_length=16)
    sequence = models.IntegerField('展示顺序', default=10)

    class Meta:
        db_table = 'tb_coursetag'

    def __str__(self):
        return self.title

class Course(Base):
    STATUS = (
        ('0', '即将上线'),
        ('1', '已上线'),
        ('2', '已下线'),
    )
    title = models.CharField('课程名', max_length=24)
    desc = models.CharField('课程描述', max_length=256)
    img = models.ImageField('课程logo', upload_to='course', null=True)
    course_type = models.ForeignKey(CourseType, verbose_name='课程类型',on_delete=models.SET_NULL, default=None, null=True)
    course_tag = models.ManyToManyField(CourseTag, verbose_name='课程标签')
    status = models.CharField('课程状态', choices=STATUS, max_length=8,default='1')
    attention = models.IntegerField('关注人数', default=0)
    learner = models.IntegerField('学习人数', default=0)

    class Meta:
        db_table = 'tb_course'

    def __str__(self):
        return self.title
models

2.课程章节表2张表

 

 

 

class Chapters(Base):
    title = models.CharField('章标题', max_length=24)
    serial_num = models.IntegerField('章序号')
    course = models.ForeignKey(Course, related_name='chapters',
    on_delete=models.SET_NULL, null=True)

    class Meta:
        db_table = 'tb_chapters'

    def __str__(self):
        return self.title

class Sections(Base):
    title = models.CharField('节标题', max_length=24)
    serial_num = models.IntegerField('节序号')
    chapters = models.ForeignKey(Chapters, related_name='sections',on_delete=models.SET_NULL, null=True)
    learn_time = models.IntegerField('学习小时', default=1)
    video = models.FileField("上传视频", upload_to="videos/%Y%m%d/", blank=True,max_length=1024)
    seq_num = models.IntegerField("序号", default=1)
    class Meta:
        db_table = 'tb_sections'
    def __str__(self):
        return self.title
models.py

 

3.course/admin.py注册后台管理

from django.contrib import admin
from . import models

admin.site.register(models.CourseType)
admin.site.register(models.CourseTag)
admin.site.register(models.Course)
admin.site.register(models.Sections)
admin.site.register(models.Chapters)

 

4.迁移表

python manage.py makemigrations
python manage.py migrate

 

标签:__,IntegerField,title,models,张表,class,课程,设计,self
来源: https://www.cnblogs.com/gaodenghan/p/13954218.html