• django-创建表的字段属性,表关系


    表的各种属性文档:null char ..., django与之对应的文档

    表关系

    class Book(models.Model):
        headline = models.CharField('大标题', max_length=50)
        pub_date = models.DateTimeField('出版时间',auto_now=True)
    
    
        class Meta:
            db_table = 'book' # 映射到数据库的表名。不设置该属性,默认名字为appname_book   app名字_类名
            managed = True # 默认True 代表通过django管理该表结构,反之不操作book表
            ordering = ['-pub_date', 'id'] # 排序 可通过多个字段排序 倒序添加"-"即可
            verbose_name = '书籍' # 查询结果为单条记录的描述
            verbose_name_plural = '书记柜' # 查询结果为多条数据的描述
    
    
    class Number(models.Model):
        number = models.IntegerField('编号')
        book = models.OneToOneField(Book) # book与number一对一关系 OneToOneField代表一对一  不指定(to_field="id")关联字段,默认关联主键id
    
    
    class Author(models.Model):
        name = models.CharField('姓名', max_length=100)
        book = models.ManyToManyField(Book) # author与book可以是多对多 ManyToManyField代表多对多
    
    
    class Reply(models.Model):
        content = models.TextField('评论', max_length=200)
        book = models.ForeignKey(Book) # reply与book是多对一关系 django是多对一,设置在'多'的表里  ForeignKey代表多对一

    表关系外键可以传入的属性

    • ForeignKey 外键的属性(包括ManyToManyField,OneToOneField)
      • db_constraint:bool  是否建立外键约束
      • to_field:string 关联到的关联对象的字段名称。默认地,Django 使用关联对象的主键。
      • related_name: string 这个名称用于让关联的对象反查到源对象.如果你不想让Django 创建一个反向关联
      • on_delete: string 可以取如下值
        • CASCADE:级联删除,如果删除,相关联的那个也会删除
        • PROTECT:保护类型。如果删除,将会抛出一个ProtectedError错误
        • SET_NULL:如果删除了本条数据,外键的那条数据将会设置为null,这个只有在外键null为True的情况下才可以使用
        • SET_DEFAULT:如果删除了本条数据,外键那条数据将会职位默认值,这个只有在外键那个字段设置了default参数才可以使用
  • 相关阅读:
    markdown图片设置
    编程变量名
    c++ 子类构造函数初始化及父类构造初始化
    idea中解决Git反复输入代码的问题
    idea中修改git提交代码的用户名
    网络相关
    idea Controller层编译Mapper层报错
    java7与java8的新特性
    修改列名以及其数据类型
    修改数据库表的某个字段默认值
  • 原文地址:https://www.cnblogs.com/tangpg/p/9013167.html
Copyright © 2020-2023  润新知