django-创建表的字段属性,表关系
2024-08-24 23:45:40
表的各种属性文档: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参数才可以使用
最新文章
- BZOJ 4066 简单题 ——KD-Tree套替罪羊树
- Zabbix实现微信报警
- 1.1ASP.NET Web API 2入门
- 高精度快速预览打开dwg文件的CAD控件CAD Image DLL介绍及下载
- Java设计模式之代理模式
- Git 忽略一些文件不加入版本控制
- 两分钟让你明白什么是ERP
- MoveManager管理类
- [ATL/WTL]_[0基础]_[CBitmap复制图片-截取图片-平铺图片]
- linux下python多版本共存
- css3的::selection属性
- TCP为何采用三次握手来建立连接,若采用二次握手可以吗
- 清北学堂北京大学冯哲神仙讲课day2
- leetcode 44. Wildcard Matching(模糊匹配)
- dfs(通过控制点的编号来得出每个点的坐标)
- OpenGL ES平移矩阵和旋转矩阵的左乘与右乘效果
- [Writeup]二维码的一个题
- 产生冠军(hdu2094)
- python数字前自动补零
- xdebug安装方法