Has*_*bal 0 python database django django-models django-rest-framework
在我的 Django 项目中,is_active我的数据库的每个表中都有一个布尔列。每次我或框架访问数据库时,我只希望显示活动记录。实现这一目标的标准方法是什么?当然,我不想检查is_active我所做的每个查询。
最简单的方法是创建一个自定义模型管理器,如下所示:
class OnlyActiveManager(models.Manager):
def get_queryset(self):
return super(OnlyActiveManager, self).get_queryset().filter(is_active=True)
Run Code Online (Sandbox Code Playgroud)
然后,将其添加到您的模型中:
class MyModel(models.Model):
objects = models.Manager()
active = OnlyActiveManager()
Run Code Online (Sandbox Code Playgroud)
接下来,像这样使用它:
foo = MyModel.active.all()
Run Code Online (Sandbox Code Playgroud)
您还可以使用它来替换默认管理器(称为objects),但随后您必须执行自定义查询才能获取所有不活动的记录。
| 归档时间: |
|
| 查看次数: |
3063 次 |
| 最近记录: |