美文网首页
Django模型-管理器、元选项

Django模型-管理器、元选项

作者: IT的咸鱼 | 来源:发表于2018-08-08 20:11 被阅读0次

模型实例方法

        str():在将对象转换成字符串时会被调用。

        save():将模型对象保存到数据表中,ORM框架会转换成对应的insert或update语句。

        delete():将模型对象从数据表中删除,ORM框架会转换成对应的delete语句。

模型类的属性

属性objects:管理器,是models.Manager类型的对象,用于与数据库进行交互。

当没有为模型类定义管理器时,Django会为每一个模型类生成一个名为objects的管理器,自定义管理器后,Django不再生成默认管理器objects。

为模型类BookInfo定义管理器books语法如下:

管理器Manager

管理器是Django的模型进行数据库操作的接口,Django应用的每个模型类都拥有至少一个管理器。Django支持自定义管理器类,继承自models.Manager。

自定义管理器类主要用于两种情况:

          (1)   修改原始查询集,重写all()方法

          (2)   向管理器类中添加额外的方法,如向数据库中插入数据。

1. 修改原始查询集,重写all()方法。

(a)打开booktest/models.py文件,定义类BookInfoManager

#图书管理器

class BookInfoManager(models.Manager):

    def all(self):

          #默认查询未删除的图书信息

          #调用父类的成员语法为:super().方法名

        return super().all().filter(isDelete=False)

(b)在模型类BookInfo中定义管理器

class BookInfo(models.Model):

        books = BookInfoManager()

2. 在管理器类中定义创建对象的方法

对模型类对应的数据表进行操作时,推荐将这些操作数据表的方法封装起来,放到模型管理器类中。

(a)打开booktest/models.py文件,定义方法create。

class BookInfoManager(models.Manager):

#创建模型类,接收参数为属性赋值

    def create_book(self, title, pub_date):

       #创建模型类对象self.model可以获得模型类

        book = self.model()       

        book.btitle = title

        book.bpub_date = pub_date

        book.bread=0

        book.bcommet=0

        book.isDelete =False# 将数据插入进数据表

        book.save()

        return book

(b)为模型类BookInfo定义管理器books语法如下

class BookInfo(models.Model):

    books = BookInfoManager()

(c)调用语法如下:

调用:book=BookInfo.books.create_book("abc",date(1980,1,1))

                      元选项

在模型类中定义类Meta,用于设置元信息,如使用db_table自定义表的名字。

例:指定BookInfo模型类生成的数据表名为bookinfo。

在BookInfo模型类中添加如下内容,代码如下:

#定义图书模型类BookInfo

class BookInfo(models.Model):

      #定义元选项

      class Meta:

              db_table = 'bookinfo'  #指定BookInfo生成的数据表名为bookinfo

相关文章

  • Django 2.1.7 视图 - 自定义404错误、500错误

    上一篇Django 2.1.7 模型管理器 models.Manager 以及 元选项 讲述了关于Django模型...

  • Django模型-管理器、元选项

    模型实例方法 str():在将对象转换成字符串时会被调用。 save():将模型对象保存到数据表中,ORM框...

  • 七 Django模型元选项

    元选项(非必须) 数据库元数据就是指定义数据库各类对象结构的数据,是表级操作 1、abstract 说明表示模型是...

  • django-model之定义管理器(从数据库查询数据的API)

    管理器Manager 管理器是Django 的模型进行数据库查询操作的接口。Django 应用的每个模型都拥有至少...

  • django管理器类

    管理器类 管理器类是提供给django模型的数据库查询操作的接口。django应用的每个模型至少有一个管理器类 定...

  • Django模型之meta选项详解

    Django模型之meta选项详解 Django模型类的Meta是一个内部类,它用于定义一些Django模型类的行...

  • Django 模型层 Meta 选项详解

    Meta 是 Django 模型类的一个内部类,用于定义一些与 Django 特定模型相关的一些选项。 可选的选项...

  • django-model之元选项

    在模型类里面可以进行元选项设置.模型元数据是“任何不是字段的数据”元选项举例: 可用的元选项 abstract 如...

  • 管理器 Manager

    管理器是 Django 的模型进行数据库的查询操作的接口 ,用于与数据库进行交互,Django 应用的每个模型都拥...

  • Django的元选项

    模型元选项 1. abstract Options.abstract如果 abstract = True, 就表示...

网友评论

      本文标题:Django模型-管理器、元选项

      本文链接:https://www.haomeiwen.com/subject/xxlxbftx.html