我在Django模型类中内置了一个函数,我想使用该函数过滤查询结果。
class service: ...... def is_active(self): if datetime.now() > self.end_time: return False return True
现在,我想在查询过滤器中使用此功能,例如
nserv = service.objects.filter(is_active=True)
我知道,对于这种简单的“ is_active”情况,我可以在过滤器查询中直接进行比较,但是对于更复杂的情况,这可能是不可能的。我应该如何基于自定义函数进行查询?
我建议您为类使用自定义管理器,您可以这样使用:
nserv = service.objects.are_active()
这将通过以下方式实现:
class ServiceManager(models.Manager): def are_active(self): # use your method to filter results return you_custom_queryset
查看自定义经理