Python 仅选择活动记录django查询
在我的Django项目中,我的数据库的每个表中都有一个Python 仅选择活动记录django查询,python,django,database,django-models,django-rest-framework,Python,Django,Database,Django Models,Django Rest Framework,在我的Django项目中,我的数据库的每个表中都有一个is\u activeboolean列。每次我或框架访问数据库时,我只希望显示活动记录。实现这一目标的标准方法是什么?当然,我不想在每次查询中都检查是否处于活动状态 您可以使用django模型管理器来实现这一点 请查看django文档了解详细信息您可以使用django模型管理器来完成 请查看django文档了解详细信息最简单的方法是创建自定义模型管理器,如下所示: class OnlyActiveManager(models.Manager)
is\u active
boolean列。每次我或框架访问数据库时,我只希望显示活动记录。实现这一目标的标准方法是什么?当然,我不想在每次查询中都检查是否处于活动状态 您可以使用django模型管理器来实现这一点
请查看django文档了解详细信息您可以使用django模型管理器来完成
请查看django文档了解详细信息最简单的方法是创建自定义模型管理器,如下所示:
class OnlyActiveManager(models.Manager):
def get_queryset(self):
return super(OnlyActiveManager, self).get_queryset().filter(is_active=True)
foo = MyModel.active.all()
然后,将其添加到您的模型中:
class MyModel(models.Model):
objects = models.Manager()
active = OnlyActiveManager()
接下来,像这样使用它:
class OnlyActiveManager(models.Manager):
def get_queryset(self):
return super(OnlyActiveManager, self).get_queryset().filter(is_active=True)
foo = MyModel.active.all()
您也可以使用它来替换默认的管理器(称为对象),但随后您必须执行自定义查询以获取所有处于活动状态的记录。最简单的方法是创建自定义模型管理器,如下所示:
class OnlyActiveManager(models.Manager):
def get_queryset(self):
return super(OnlyActiveManager, self).get_queryset().filter(is_active=True)
foo = MyModel.active.all()
然后,将其添加到您的模型中:
class MyModel(models.Model):
objects = models.Manager()
active = OnlyActiveManager()
接下来,像这样使用它:
class OnlyActiveManager(models.Manager):
def get_queryset(self):
return super(OnlyActiveManager, self).get_queryset().filter(is_active=True)
foo = MyModel.active.all()
您也可以使用它来替换默认的管理器(称为对象
),但随后您必须进行自定义查询以获取所有处于活动状态的记录。您可以为您的模型编写一个管理器类,下面给出了一个模型管理器示例,有关更多信息,请参考Django官方网站
class MediaManager(models.Manager):
def get_queryset(self):
return MediaQuerySet(self.model, using=self._db)
def active(self):
return self.filter(is_active=True)
class Media(models.Model):
(..model fields..)
objects = MediaManager()
查询应该是
media = Media.objects.active()
您可以为您的模型编写一个管理器类,下面给出了一个示例模型管理器,有关更多信息,请访问Django官方网站
class MediaManager(models.Manager):
def get_queryset(self):
return MediaQuerySet(self.model, using=self._db)
def active(self):
return self.filter(is_active=True)
class Media(models.Model):
(..model fields..)
objects = MediaManager()
查询应该是
media = Media.objects.active()
使用模型管理器使用模型管理器