django-创建表的字段属性,表关系
表的各种属性文档:null char ..., django与之对应的文档
- https://docs.djangoproject.com/en/1.11/ref/models/fields/ 英文
- https://yiyibooks.cn/xx/Django_1.11.6/ref/models/fields.html 中文
表关系
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参数才可以使用
django-创建表的字段属性,表关系的更多相关文章
- Django创建数据库常用字段及参数
Django创建数据库常用字段及参数 常用字段 1.models.AutoField 自增列= int(11) 如果没有的话,默认会生成一个名称为 id 的列,如果要显示的自定义一个自增列,必须将给列 ...
- Linux下修改MySQL数据表中字段属性
一.修改某个表的字段类型及指定为空或非空 alter table 表名称 change 字段名称 字段名称 字段类型 [是否允许非空]; alter table 表名称 modify 字段名称 字段类 ...
- Python - Django - ORM 常用的字段属性
字段参数: null:用于表示某个字段可以为空 unique:如果设置为 unique=True,则该字段在此表中必须是唯一的 db_index:如果 db_index=True,则代表着为此字段设置 ...
- (转)arcengine+c# 修改存储在文件地理数据库中的ITable类型的表格中的某一列数据,逐行修改。更新属性表、修改属性表某列的值。
作为一只菜鸟,研究了一个上午+一个下午,才把属性表的更新修改搞了出来,记录一下: 我的需求是: 已经在文件地理数据库中存放了一个ITable类型的表(不是要素类FeatureClass),注意不是要素 ...
- sql 如何更改表的字段属性
alter table tablename alter column colname newDataType 比如:ALTER TABLE mytable ALTER COLUMN myco ...
- Oracle中查看所有表和字段以及表注释.字段注释
获取表: select table_name from user_tables; //当前用户拥有的表 select table_name from all_tables; //所有用户的表 sele ...
- oracle中查看所有表和字段以及表注释字段注释
获取表:select table_name from user_tables; //当前用户拥有的表 select table_name from all_tables; //所有用户的表 selec ...
- Django(七)模型:字段属性、字段选项(参数)
一.模型类属性命名限制 参考:https://docs.djangoproject.com/zh-hans/3.0/topics/db/models/ 1)不能是python的保留关键字. 2)不允许 ...
- HTML 5 服务器发送事件、Input 类型、表单元素、表单属性
HTML5 服务器发送事件(server-sent event)允许网页获得来自服务器的更新. Server-Sent 事件 - 单向消息传递 Server-Sent 事件指的是网页自动获取来自服务器 ...
随机推荐
- 【转】使用sklearn做特征工程
1 特征工程是什么? 有这么一句话在业界广泛流传:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已.那特征工程到底是什么呢?顾名思义,其本质是一项工程活动,目的是最大限度地从原始数据中 ...
- css3 属性——calc()
其实在之前学习CSS3的时候,我并没有注意到有calc()这个属性,后来在看一个大牛的代码的时候看到了这个,然后就引发了后来的一系列的查找.学习,以及这篇博客的诞生.好了,废话不多说了,来干正事. 一 ...
- 如何基于Netty处理粘包、拆包问题?
涉及到相关重要组件: ByteToMessageDecoder MessageToMessageDecoder 这两个组件都实现了ChannelInboundHandler接口,这说明这两个组件都是用 ...
- RHEL7.X 安装 11.2.0.4 RAC 问题
随着Linux 7 版本的普及,但Oracle数据库主流版本仍是11gR2,11.2.0.4 是生产安装首选.由于11.2.0.4对Linux 7 的支持不很完美,在Linux 7 上安装会遇到几处问 ...
- 解决:Android 8.0检测不到当前的activity
前两天从Android 7.0升级到Android 8.0,今天在用 adb shell dumpsys activity | findstr "mFocusedActivity" ...
- Assert 类
Assert 类 使用 true/false 命题验证单元测试中的条件. 继承层次结构 System.Object Microsoft.VisualStudio.TestTools.Uni ...
- PHP7.2.12-Configuration-Option
# PHP7.2.12 <pre style="background-color: rgb(255,250,233);"> `configure' configures ...
- mybatis单笔批量保存
在上一篇写了接口调用解析返回的xml,并赋值到实体.这一篇主要介绍,如何保存实体数据. 一,xml样例 <?xml version="1.0" encoding=" ...
- 报错:Syntax error on tokens, delete these tokens
该问题意思是说:你有两个双引号或者你有没有关闭%>符号. 仔细检查代码 出现这样的错误一般是括号.中英文字符.中英文标点.代码前面的空格,尤其是复制粘贴的代码,去掉即可.
- JS数组中级+高级技巧
本文介绍JS数组一些比较进阶的方法: reverse:数组反转: join:(参数)以参数为连接符将数组拼接为字符串: 实例: var arr=[]; arr[3]="haha"; ...