zoukankan      html  css  js  c++  java
  • 创建课程+增加抽象基类+课程相关5张表设计

    创建课程+增加抽象基类+课程相关5张表设计

    一、创建课程

    1.创建course模型

    1.1 创建用户模型course

    python ../manage.py startapp course # 创建course模型

    1.2 在setting.py中注册course模型(第一步)


    INSTALLED_APPS = [
    'course.apps.CourseConfig',
    ]
    # 注:pycharm无法联想,需要把apps文件夹设置为源根

    1.3 syl/urls.py添加路由(第二步)


    urlpatterns = [
    path('course/', include('course.urls')),
    ]

    1.4 创建 course/urls.py路由文件(第三步)


    from django.urls import path, re_path
    from . import views
    urlpatterns = [
       
    ]

    二、增加抽象基类

    1.syl/utils/MyBaseModel.py增加抽象基 类


    from django.db import models
    class Base(models.Model):
    create_time = models.DateTimeField('创建时间', auto_now_add=True, null=True)
    update_time = models.DateTimeField('更新时间', auto_now=True, null=True)
    class Meta:
    abstract = True

    三、课程相关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

    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

    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
  • 相关阅读:
    11111 Generalized Matrioshkas
    Uva 442 Matrix Chain Multiplication
    Uva 10815 Andy's First Dictionary
    Uva 537 Artificial Intelligence?
    Uva 340 MasterMind Hints
    SCAU 9508 诸葛给我牌(水泥题)
    Uva 10420 List of Conquests(排序水题)
    Uva 409 Excuses, Excuses!
    10/26
    11/2
  • 原文地址:https://www.cnblogs.com/Aurora-y/p/13940490.html
Copyright © 2011-2022 走看看