代码之家  ›  专栏  ›  技术社区  ›  ground5hark

基本django-自定义管理器

  •  1
  • ground5hark  · 技术社区  · 14 年前

    我正在经历 Django book 我现在在 chapter 10 . 我无法理解这段代码中的第三行:

    class DahlBookManager(models.Manager):
        def get_query_set(self):
            return super(DahlBookManager, self).get_query_set().filter(author='Roald Dahl')
    

    我了解此自定义管理器实例正在重写超类' get_query_set 方法,但为什么 super 呼叫同时传入 DahlBookManager 以及 self ?不是 自己 达尔图书管理器 同样的事情吗?

    2 回复  |  直到 14 年前
        1
  •  0
  •   CNBorn    14 年前

    这是关于Python中内置的super()函数的。

    您可以在此处获取参考: http://docs.python.org/library/functions.html

    如果忽略第二个参数,则 返回的超级对象未绑定。

        2
  •  0
  •   Ignacio Vazquez-Abrams    14 年前

    不, self 是的实例 DahlBookManager . super() 使用类处理诸如mro、继承等内容。