我很难理解如何在Django 1.6中使用modelManager。Django中的模型管理器 - 没有对模型类的引用?
我不明白让这段代码起作用的魔法在哪里。
在get_queryset(self)方法中,没有参考Book类,因此DahlBookManager如何知道它需要在执行super时使用Book实例(DahlBookManager,self)(对Book模型没有引用,据我所知,self指的是“DahlBookManager”类型的对象,而不是Book)。
因此,无论是有某种魔法,或者我真的需要审查我的Python 101.我很乐意有一些帮助,谢谢!
# First, define the Manager subclass.
class DahlBookManager(models.Manager):
def get_queryset(self):
return super(DahlBookManager, self).get_queryset().filter(author='Roald Dahl')
# Then hook it into the Book model explicitly.
class Book(models.Model):
title = models.CharField(max_length=100)
author = models.CharField(max_length=50)
objects = models.Manager() # The default manager.
dahl_objects = DahlBookManager() # The Dahl-specific manager.
但你已经在'dahl_objects明确关联此经理,'Book' = DahlBookManager( )“对吗? – karthikr 2014-09-03 15:26:01