• 技术文章 >Python框架 >Django

    django的objects怎么调用

    silencementsilencement2019-08-17 13:39:23原创4133

    首先我们先熟悉下objects的大致概念.

    object是模型属性---用于模型对象和数据库交互 .

    objects = Manager() 是管理器类型的对象 ,是Model和数据库进行查询的接口.

    objects : 管理器对象

    是Manager类型的对象,定义在from django.db import models中

    用于模型对象和数据库交互

    是默认自动生成的属性,但是可以自定义管理器对象

    实例

    class Students(models.Model):
    
        #   stuobj   = models.Manager()   #第一种重新定义objects,objects是Manager()的对象
        #   students.objects.all() 变成了 Students.stuObj.all()
        #   stuobj2 = studentManager()  重新定义objects,查询变成Students.stuObj2.all()
        sname    = models.CharField(max_length=20)
        sgender  = models.CharField(max_length=20)
        sage     = models.IntegerField()
        scontend = models.CharField(max_length=100,null=True,blank=True)

    自原本的我们的objects=models.Manager(),查询类的属性时都是.? ?类名.objects.方法

    Students.objects.all() 查询完之后返回一个queryset()

    定义管理器对象:例如stuobj = models.Manager()

    一旦自定义管理器对象,默认的objects 就不再自动生成,查询时就变成了

    Students.stuobj.all()

    查询时某些字段我们并不想要.这时候我们就可以自定义objects.

    class studentManager(models.Manager):
        def get_queryset(self):
            return super(studentManager,self).get_queryset().filter(isDelete=False)

    我们定义一个自定义的manager(),继承models.manager.

    后面的我们把isDelete是错误的,就如上面自己定义的,下面

    stuobj2 = studentManager()

    Students.stuobj2.all()就把isDelete是错误的删除了.

    专题推荐:django
    上一篇:django怎么重定向 下一篇:面试中怎么介绍django

    相关文章推荐

    • django怎么重定向

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网