Django的model中创建表

时间:2023-03-08 22:21:11
Django的model中创建表

类中的class Meta字段的作用:

第一个作用可以给这个类起名字 在后台的admin中显示这个类名字

class CourseCategory(models.Model):
"""课程大类, e.g 前端 后端..."""
name = models.CharField(max_length=64, unique=True) def __str__(self):
return "%s" % self.name class Meta: # 给这个类起名字
verbose_name_plural = "01.课程大类"

还可以创建这个类但是在数据库中不生成这个表

class CourseCategory(models.Model):
"""课程大类, e.g 前端 后端..."""
name = models.CharField(max_length=64, unique=True) def __str__(self):
return "%s" % self.name class Meta: # 只创建类但是不生成表
abstract = True

创建表的时候  我没可以使用contentType进行解决一张表对多张表做foreign key的关系,并且可以使用:

反向查找:GenericRelation,

正向查找:GenericForeign

在使用orm查询的时候就可以用正向反向字段 然后根据GenericRelation,GenericForeignkey的字段来进行反向正向查询

class DegreeCourse(models.Model):
"""学位课程""" # 用于GenericForeignKey反向查询, 不会生成表字段,切勿删除
# coupon = GenericRelation("Coupon") # 用于GenericForeignKey反向查询,不会生成表字段,切勿删除
degreecourse_price_policy = GenericRelation("PricePolicy") def __str__(self):
return self.name class Meta:
verbose_name_plural = "03.学位课" class OftenAskedQuestion(models.Model):
"""常见问题"""
content_type = models.ForeignKey(ContentType) # 关联course or degree_course