Mar*_*mro 2 python django django-models django-managers
我在模型中添加了一个自定义管理器,如下所示:
class StandardManagerModel(models.Model):
pass
class PublishableManager(models.Manager):
pass
class Publishable(models.Model):
published_objects = PublishableManager()
Run Code Online (Sandbox Code Playgroud)
.objects这将从模型中删除默认管理器。如何检索模型类中声明的默认管理器?我想要一个像这样的函数get_default_manager():
manager = get_default_manager(Publishable)
assert manager is Publishable.published_objects
manager = get_default_manager(StandardManagerModel)
assert manager is StandardManagerModel.objects
Run Code Online (Sandbox Code Playgroud)
看起来你根本不需要函数。它作为属性存储在模型上:
Model._default_manager
Run Code Online (Sandbox Code Playgroud)
还有Model._base_manager,我只能假设如果您不提供默认管理器,它就是默认管理器。
| 归档时间: |
|
| 查看次数: |
2960 次 |
| 最近记录: |