我有以下问题:我正在处理一个成长的项目,该项目使用get_queryset()
在管理器中重写方法的模式。
# Model declaration
class MyModel(models.Model):
...
objects = MyModelManager()
# Manager declaration
class MyModelManager(models.Manager):
def get_queryset(self):
return super(MyModelManager, self).get_queryset().exclude(is_visible=False)
使用django ORM时,这会使某些记录变得基本不可见。
我现在需要在某些特殊情况下使用基本get_queryset()
方法,而不要使用自定义方法。
我可以清理并更改所有代码,但这将需要大量工作。
所以我的问题是:有没有办法进行这样的查询MyModel.objects.all()
并避免使用自定义管理器方法?
希望我的观点足够清楚。
谢谢你,
罗恩
您可以在模型中添加多个经理。例如:
class MyModelManager(models.Manager):
def get_queryset(self):
return super(MyModelManager, self).get_queryset().exclude(is_visible=False)
class MyModel(models.Model):
# …
objects = MyModelManager()
all_objects = models.Manager()
如果然后需要所有对象,则可以使用进行访问。MyModel.all_objects.all()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句