courses下编辑models.py,包括课程分类类目、课程

创建CourseCategory、Course

from django.db import models
from django.utils import timezone
from orgs.models import School, Teacher

class CourseCategory(models.Model):
    """
    课程分类类目
    """
    CATEGORY_TYPE = ((1, "一级类目"), (2, "二级类目"), (3, "三级类目"))
    name = models.CharField(max_length=30, verbose_name="类别名称", help_text="类别名称")
    code = models.CharField(max_length=30, verbose_name="类别代码", help_text="类别代码")
    category_type = models.IntegerField(choices=CATEGORY_TYPE, verbose_name="类目级别", help_text="类目级别")
    parent = models.ForeignKey("self", null=True, blank=True, verbose_name="父级类目", help_text="父级类目",
                               related_name="children", on_delete=models.CASCADE)
    add_time = models.DateTimeField(default=timezone.now, verbose_name="添加时间")

    class Meta:
        verbose_name = "课程类别"
        verbose_name_plural = verbose_name

    def __str__(self):
        return self.name

class Course(models.Model):
    """
    课程
    """
    category = models.ForeignKey(CourseCategory, verbose_name="课程类别", null=True, blank=True, on_delete=models.SET_NULL)
    school = models.ForeignKey(School, verbose_name="授课机构", null=True, blank=True, on_delete=models.SET_NULL)
    teacher = models.ForeignKey(Teacher, verbose_name="授课教师", null=True, blank=True, on_delete=models.SET_NULL)
    title = models.CharField(max_length=125, verbose_name='课程名称')
    degree = models.CharField(verbose_name="课程难度", choices=(("cj", "初级"), ("zj", "中级"), ("gj", "高级")), max_length=2)
    introduction = models.CharField(max_length=255, verbose_name='课程简介', default='这个课程没有简介')
    description = models.TextField(verbose_name='课程描述')
    cover = models.ImageField(upload_to='courses/courses/covers/', verbose_name='课程封面', max_length=255, null=True,
                              blank=True)
    recommend = models.CharField(verbose_name='推荐', choices=(("yes", "推荐到首页"), ("no", "不推荐到首页")), max_length=3)
    click_num = models.IntegerField(verbose_name='点击量', default=0)
    favor_num = models.IntegerField(verbose_name='收藏量', default=0)
    comment_num = models.IntegerField(verbose_name='评论量', default=0)
    add_time = models.DateTimeField(default=timezone.now, verbose_name='添加时间')

    class Meta:
        verbose_name = '课程'
        verbose_name_plural = verbose_name

    def __str__(self):
        return self.title

知识点

choices=CATEGORY_TYPE含义

类目可在指定配好的里面选择

parent外键

"self"表示外键指向自身,related_name="children"代表子目录,on_delete=models.CASCADE表示联级删除

版权声明:如无特殊说明,文章均为本站原创,转载请注明出处

本文链接:http://zhangyanc.club/subject/article/django-courses/

许可协议:署名-非商业性使用 4.0 国际许可协议