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 事件指的是网页自动获取来自服务器 ...
随机推荐
- npm package.json中的dependencies和devDependencies的区别
转载:http://www.cnblogs.com/jes_shaw/p/4497836.html 一个node package有两种依赖,一种是dependencies一种是devDependenc ...
- Android 之WebView实现下拉刷新和其他相关刷新功能
最近项目中需要用到WebView下拉刷新的功能,经过查找资料终于完成了此功能,现在拿出来和大家分享一下.希望对大家有所帮助. 效果如下图: 代码: activity.xml <?xml ve ...
- hdu 5303 DP(离散化,环形)+贪心
题目无法正常粘贴,地址:http://acm.hdu.edu.cn/showproblem.php?pid=5303 大意是给出一个环形公路,和它的长度,给出若干颗果树的位置以及树上的果子个数. 起点 ...
- kali linux 2018.2 mysql密码修改后无效,外部无法连接问题。
kali linux 2018.2 mysql密码修改后无效,外部无法连接问题 Kali Linux 2018.2 默认MySQL数据库是mariadb,可能和MySQL有些细微的变化,只需要做如下处 ...
- vim按下ctrl+s僵死
CTRL+S表示停止向终端停止输出 CTRL+Q恢复向终端输出流
- MapReduce中文翻译
MapReduce:超大机群上的简单数据处理 摘要 MapReduce是一个编程模型,和处理,产生大数据集的相关实现.用户指定一个map函数处理一个key/value对,从而产生中间的key/va ...
- Google Web Designer打开白屏问题的解决方案
Google Web Designer是谷歌出品的一个可视化的 HTML5 网页和广告的设计开发工具 Google Web Designer . 官网地址:https://www.google. ...
- 更新.xsd后,rdlc 数据源更新不了
- synchronized一个(二)
今天遇到了一个关于synchronized的一个问题,关于其持有锁的问题.这个问题以前是有看过相关文章的,但是一直没有记录,今天大概记录一下当前的认知. 对于静态方法,synchronized的使用的 ...
- Alpha冲刺一 (9/10)
前言 队名:拖鞋旅游队 组长博客:https://www.cnblogs.com/Sulumer/p/10034872.html 作业博客:https://edu.cnblogs.com/campus ...