管理器

默认管理器:

例 Book.objects.filter(name='朝花夕拾')

自定义管理器:

books = models.Manager()

Book.books.filter(name='朝花夕拾')

自定义管理增加额外的方法:

class BookManager(models.Manager)

        def get_normal_word(self):

                return self.get_queryset().filter(name='平凡的世界')

        # 蓝色字为修改自定义的查询集

        def get_queryset(self):

                  return super().get_query().filter(id__gt=1)

      ## Book.mybooks.all()   # 只能返回id大于1的查询集

class Book(models.Model)

        ...

        mybooks = BookManager()

---------------------------------------------------------------------------------------------------------

查找平凡的世界的时候:

    Book.mybooks.get_normal_word()

  ---------------------------------------------------------------------------------------------------------

使用多个manager:

        class MaleManager(models.Manager):
            def get_queryset(self):
                return super(MaleManager, self).get_queryset().filter(sex='M')
        
        class FemaleManager(models.Manager):
            def get_queryset(self):
                return super(FemaleManager, self).get_queryset().filter(sex='F')
        
        class Person(models.Model):
            first_name = models.CharField(max_length=50)
            last_name = models.CharField(max_length=50)
            sex = models.CharField(max_length=1, 
                                   choices=(
                                            ('M', 'Male'),  
                                            ('F', 'Female')
                                   )
                                   )
            people = models.Manager()
            men = MaleManager()
            women = FemaleManager()      

    

        

猜你喜欢

转载自blog.csdn.net/yx1179109710/article/details/81408271