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参数才可以使用

原文地址:https://www.cnblogs.com/tangpg/p/9013167.html

时间: 2024-07-28 16:10:20

django-创建表的字段属性,表关系的相关文章

SqlServer查询出数据库中所有的表及其字段属性

代码如下所示: /********************************* SqlServer查询出数据库中所有的表及其字段属性 *********************************/ SELECT ( CASE WHEN a.colorder = 1 THEN d.name ELSE '' END ) AS 表名 ,--如果表名相同就返回空 a.colorder AS 字段序号 , a.name AS 字段名 , ( CASE WHEN COLUMNPROPERTY(a

MySql常见数据类型,SQL执行顺序,条件语句,转储,查看表中字段属性

数据类型: 1 数字: Tinyint:小数据 用于保存一些范围的整数数值范围 有符号: -128-127 无符号: 0-255 int 整数 数据类型用于保存一些范围的整数数值范围 有符号: -2147483648--2147483647 无符号: 0-4294967295 Bigint 大整数 数据类型用于保存一些范围的整数数值范围: 有符号: -9223372036854775808--9223372036854775807 无符号: 0-18446744073709551615 floa

二、修改表、字段属性设置、索引设置、约束设置

 字段属性设置 not null 不为空 auto_increment 设定int类型字段的值可以"自增长",即其值无需"写入",而会自动获得并增加 注:此属性必须随同 primary key  或 unique key 一起使用. [primary] key: 设定为主键.是唯一键"加强":也不能重复并且不能使用null,并且可以作为确定任意一行数据的"关键值" unique  [key] : 设定为唯一键:表示该字段的

sql实现从两个表获取字段组成表数据再插入到函数表中

实现此效果说起来比较难以说明,我这里还是先将实现的效果已图的形式展示一下吧. 这是两个表的设计.我想实现的效果举个例子,以查询secretaryCharge为例: 点击"市级",我将查询到市级一下所有"区级"的secretaryCharge数目,并通过organizations中的fullName来作为名字,查到的统计数目作为值.得到的效果便是如下图所示: 具体实现sql语句就是用到join on,sql语句具体如下: insert @result(fullName

Oracle中查看所有表和字段以及表注释.字段注释

获取表: select table_name from user_tables; //当前用户拥有的表 select table_name from all_tables; //所有用户的表 select table_name from dba_tables; //包括系统表 select table_name from dba_tables where owner='用户名' user_tables: table_name,tablespace_name,last_analyzed等 dba_

MFC属性表单的创建

一个属性表单由一个或多个属性页组成.它有效地解决了大量信息无法在一个对话框上显示这一问题. 1.创建属性页 为了创建属性表单,首先需要创建属性页,后者对应的MFC类是CPropertyPage,该类生成的对象代表了属性表单中一个单独的属性页. 在资源编译器下添加3个属性页资源,并修改这三个属性页资源的ID及标题(Caption属性),属性页的标题就是最终在属性页上显示的选项卡的名称.有三种类型的属性页,如图: 说明:如果知道了属性页资源与对话框资源之间的属性区别,也可以在程序中先增加一个普通对话

深入理解Java虚拟机笔记---属性表集合

在Class文件,字段表,方法表中都可以携带自己的属性表集合,以用于描述某些场景专有的信息.与Class文件中其它的数据项目要求的顺序.长度和内容不同,属性表集合的限制稍微宽松一些,不再要求各个属性表具有严格的顺序,并且只要不与已有的属性名重复,任何人实现的编译器都可以向属性表中写入自己定义的属性信息,Java虚拟机运行时会忽略掉它不认识的属性.为了能正确地解析Class文件,<Java虚拟机规范(第二版)>中预定义了9荐虚拟机实现应当能识别的属性,具体如下表所示: 对于每个属性,它的名称需要

HTML 5 服务器发送事件、Input 类型、表单元素、表单属性

HTML5 服务器发送事件(server-sent event)允许网页获得来自服务器的更新. Server-Sent 事件 - 单向消息传递 Server-Sent 事件指的是网页自动获取来自服务器的更新. 以前也可能做到这一点,前提是网页不得不询问是否有可用的更新.通过服务器发送事件,更新能够自动到达. 例子:Facebook/Twitter 更新.估价更新.新的博文.赛事结果等. 浏览器支持 所有主流浏览器均支持服务器发送事件,除了 Internet Explorer. 接收 Server

【JVM虚拟机】(8)--深入理解Class中--方法、属性表集合

#[JVM虚拟机](8)--深入理解Class中--方法.属性表集合 之前有关class文件已经写了两篇博客: 1.[JVM虚拟机](5)---深入理解JVM-Class中常量池 2.[JVM虚拟机](6)---深入理解Class中访问标志.类索引.父类索引.接口索引 3.[JVM虚拟机](7)---深入理解Class中-属性集合 那么这篇博客主要讲有关 方法表集合 相关的理解和代码示例. 方法表集合: 告知该方法是什么修饰符修饰?是否有方法值?返回类型是什么?方法名称,方法参数,还有就是方法内