这个问题是关于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
)。
任何想法如何实现这一目标?
答案 0 :(得分:0)
我绝对不确定我理解你的问题。您的代码段似乎与其下方的评论相矛盾。
您的代码段看起来像您希望能够拥有不同的ExtraManagerModel类。如果是这种情况,您可以使用由ExtraManagerModel实现的抽象类,并继承childC类的那些类的抽象父类。
希望这有帮助。