Table of Contents
- 1.创建XXX_Manager(admin.ModelAdmin)管理类
- 2.关联模型类(model中的类)和模型管理类(XXX_Manager)
- list_display 去控制哪些字段会显示在Admin 的修改列表页面中。
- list_display_links 可以控制list_display中的字段是否应该链接到对象的“更改”页面。
- list_filter 设置激活激活Admin 修改列表页面右侧栏中的过滤器
- search_fields 设置启用Admin 更改列表页面上的搜索框。
- list_editable 设置为模型上的字段名称列表,这将允许在更改列表页面上进行编辑。
- 其它参见https://docs.djangoproject.com/en/1.11/ref/contrib/admin/
数据库表管理
- 1.修改模型类字段的显示名字
- 通过 verbose_name 参数来展示
- 作用:此字段显示的名字会在后台数据库管理页面显示
- 2.内嵌类Meta 定义模型类属性展现形式
- 作用:可以更改数据表名称、单数、复数名称(展现在admin)
- db_table(数据库名),verbose_name(单数名),verbose_name_plural(负数名)
- 用法:定在在model内的自定义类中,作为内部类定义
数据表关联关系映射 Relationship Map
-
三种映射关系
- 一对一
- 一对多
- 多对多
-
一对一映射:
-
使用关键字:
- 使用方法和创建字段一样
- fields = models.实体类.OneToOneField(映射的类)来创建
- 创建数据时候赋值是一个对象 fields=映射的对象
-
访问数据(查询)
- 可以双向访问,django已经写好了接口
- 正向查询
- 直接通过关联属性查询
- 反向查询
- 通过反向引用属性查询
- 反向引用属性为实例对象.引用类名(小写),
- 如作家的反向引用为作家对象.wife
-
可以包含级联动作
-
-
一对多映射:
-
使用关键字:
- 使用方法和创建字段一样
- fields = models.实体类.ForeignKey(映射的类)来创建
- 创建数据时候赋值是一个对象 fields=映射的对象
-
访问数据(查询)
- 多查一(正向查询)
- 直接通过关联属性查询
- 用filter来过滤查询(一查多)
- 多出来一个 类名_set() 方法,可以返回多个数据
- 多查一(正向查询)
-
常用参数:
- on_delete
- models.CASCADE 级联删除。 Django模拟SQL约束ON DELETE CASCADE的行为,
并删除包含ForeignKey的对象。 - models.PROTECT 抛出ProtectedError 以阻止被引用对象的删除;
- SET_NULL 设置ForeignKey null;只有null是True才有可能。
- SET_DEFAULT 将ForeignKey设置为其默认值;必须设置ForeignKey的默认值。
- ... 其它参请参考文档 https://yiyibooks.cn/xx/Django_1.11.6/ref/index.html ForeignKey部分
- models.CASCADE 级联删除。 Django模拟SQL约束ON DELETE CASCADE的行为,
- **options 可以是常用的字段选项如:
- null
- unique等
- on_delete
-
可以包含级联动作
-
- 多对多映射:
4.扩展延伸知识
-
django path匹配负数
-
ORM
- 即Object-Relationl Mapping,它的作用是在关系型数据库和对象之间作一个映射,这样,我们在具体的操作数据库的时候,就不需要再去和复杂的SQL语句打交道,只要像平时操作对象一样操作它就可以了 。
- https://blog.csdn.net/u010947534/article/details/90669452
-
django中 migrate使用回退操作
- 作用:django中数据库有位置错误可以使用该方法调试
- python manage.py migrate bookstore(应用名) 0005
5.知识内容个人梳理
6.今天都复习了之前的什么内容
7.运动数据
- 登山跑 40 3组
- 侧抬腿 30 3组
- 腹肌锻炼 25 3组
django path匹配负数
ORM
- 即Object-Relationl Mapping,它的作用是在关系型数据库和对象之间作一个映射,这样,我们在具体的操作数据库的时候,就不需要再去和复杂的SQL语句打交道,只要像平时操作对象一样操作它就可以了 。
- https://blog.csdn.net/u010947534/article/details/90669452
django中 migrate使用回退操作
- 作用:django中数据库有位置错误可以使用该方法调试
- python manage.py migrate bookstore(应用名) 0005
6.今天都复习了之前的什么内容
7.运动数据
- 登山跑 40 3组
- 侧抬腿 30 3组
- 腹肌锻炼 25 3组
- 登山跑 40 3组
- 侧抬腿 30 3组
- 腹肌锻炼 25 3组