模型关联

一对多

  from django.db import models

  # Create your models here.

  class Project(models.Model):
      project_name = models.CharField(max_length=32,verbose_name="项目名称")
      project_describe = models.CharField(max_length=100,verbose_name="描述")
      project_create_date = models.DateTimeField(verbose_name="创建时间")

      class Meta: 
          db_table = 'db_project' # 给表定义表名

  class Clas(models.Model):
      SEX_CHOICES = (
          (0, "API"),
          (1, "WEBUI"),
          (2, "APPUI"),
      )

      cla_name = models.CharField(db_column="class_name",max_length=32,unique=True,verbose_name="姓名")
      cla_describe = models.CharField(db_column="class_describe",max_length=100,verbose_name="描述")
      cla_create_date = models.DateTimeField(db_column="class_create_date",verbose_name="创建时间")
      # 一对多 要将关联放在多的模型里面
      # db_column给字短定义名称 on_delete删除模式# db_constraint限制 下面这一行 他会在表中创建一个字短 “class_id”
      clas = models.ForeignKey(db_column="class_id",to="Project",on_delete=models.CASCADE,db_constraint=False)

      class Meta:
          db_table = 'db_class'

一对一

from django.db import models

# Create your models here.

class Project(models.Model):
    project_name = models.CharField(max_length=32,verbose_name="项目名称")

class Clas(models.Model):

    cla_name = models.CharField(db_column="class_name",max_length=32,unique=True,verbose_name="姓名")
    # 一对一 
    stu_detail = models.OneToOneField("StudentDetail",on_delete=models.CASCADE)

多对多

from django.db import models

# Create your models here.

class Project(models.Model):
    project_name = models.CharField(max_length=32,verbose_name="项目名称")

class Clas(models.Model):

    cla_name = models.CharField(db_column="class_name",max_length=32,unique=True,verbose_name="姓名")
    # 多对多 关联 放在两个模型里面哪个都可以 她会生成第三张表 默认表明是 类名_字段名 Clas_p 自定义表名 使用 db_table
    p = models.ManyToManyField("要关联的模型类名称",db_table="第三张表名")
    class Meta:
        db_table = 'db_class'    
posted @ 2022-12-03 11:51  zhq9  阅读(12)  评论(0编辑  收藏  举报