【发布时间】:2009-07-27 15:37:16
【问题描述】:
这个问题是关于Custom managers and model inheritance的最后一个例子。
我希望能够做类似以下的事情:
class ExtraManagerModel(models.Model):
# OtherManager class supplied by argument shall be set as manager here
class Meta:
abstract = True
class ChildC(AbstractBase, ExtraManagerModel(OtherManager)): # That doesn't work, something like that
...
# Default manager is CustomManager, but OtherManager is
# also available via the "extra_manager" attribute.
这样做的全部目的是我不想为每个被覆盖的管理器编写一个ExtraManagerModel 类,以保留父类的默认管理器 (AbstractBase)。
有什么想法可以实现吗?
【问题讨论】:
-
我不清楚你想做什么。来自 django 网站的示例中的 ChildC 似乎可以满足您的需求。两个管理器都可用于类,继承中 ExtraManagerModel 的“参数”是什么?
-
为每个要添加到模型的额外管理器编写一个新的模型类并不是很干。我想为不同的额外管理器类提供一种 ExtraManagerModel 模板类。
标签: python django django-models