Django ORM-2MODEL设置

2019-10-11  本文已影响0人  足__迹

数据库模型

- 应用下的/models.py 模块
创建模型类
# 1.每一个应用下的数据库模型类,需要在当前应用下的文件中定义
# 2. 一个数据库模型相当与一个数据表
# 3. 一个类属性相当与数据表中的一个字段
# 4.默认会创建一个会自动递增的ID主键
# 5.一个数据库的模型类必须继承model或者model中的子类
# 6. 默认创建的数据库名为,应用名小写_数据库模型类名小写
class Person(models.Model):

  '''
   继承models中的基类
   创建Person 类
  '''
  id = models.AutoField(primary_key=True) #primary_key为True 代表递增 ,本行默认创建可略
  first_name = models.CharField(max_length=30)  #
  last_name = models.CharField(max_length=30)


创建类属性并重置表名
class Project(models.Model):
     """
      verbose_name 别名用于设置更人性化的字段名
      max_length 字段最大长度
      unique 用于设置当前字段是否唯一 , 默认False
      help_text 设置api文档中的中文名称
      blank  设置前端用户可以不传  default 默认值
      null 设置数据库中字段允许为空

     """
     name = models.CharField(verbose_name='项目名称' , max_length=200,unique=True,help_text='项目名称')
     leader = models.CharField(verbose_name='负责人', max_length=50,  help_text='负责人')
     tester = models.CharField(verbose_name=' 测试人员', max_length=50,  help_text='测试人员')
     programer = models.CharField(verbose_name='开发人员', max_length=200, help_text='开发人员')
     publish_app = models.CharField(verbose_name='发布应用', max_length=200,  help_text='发布应用')
     desc = models.TextField(verbose_name='简要描述',  help_text='发布应用',blank=True,default='',null=True)
     # models.IntegerField(choices=[])) 限定传入信息为choices中的内容

     class Meta:
          #定义子类,用于设置当前数据库模型的元数据信息
          db_table = 'ta_project' #设置表名
          verbose_name = '项目'  #会在andmin站点中,显示一个更人性的表名
          verbose_name_plural = '项目'

创建关联数据的模型类

class Project2s(models.Model):
    name = models.CharField(verbose_name='接口名称', max_length=200, unique=True, help_text='接口名称')
    tester = models.CharField(verbose_name=' 测试人员', max_length=50, help_text='测试人员')
    desc = models.TextField(verbose_name='简要描述', help_text='发布应用', blank=True, default='', null=True)
    # 第一个参数为关联模型路径(应用名。模型类)或者模型类
    # 第二个参数设置的是,父表删除之后,该字段的处理方式
    # CASCADE代表子表会被删除 SET_NULL 子表设置为空 PROJECT 父表删除会报错 SET_DEFAULI 设置为空
    project = models.ForeignKey('Project.Projects', on_delete=models.CASCADE, verbose_name='所属项目', help_text='所属项目')

    # 定义子类,用于设置当前数据库模型的元数据信息
    class Meta:
        """
        db_table .设置表名
        verbose_name 会在andmin站点中,显示一个更人性的表名
        """
        db_table = 'ta_project2s'
        verbose_name = '项目'
        verbose_name_plural = '项目'

数据迁移

3, 输入


image.png

4、完成


image.png
上一篇下一篇

猜你喜欢

热点阅读