我在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”情况,我可以直接在filter查询中进行比较,但对于更复杂的情况,这可能是不可能的。如何根据自定义函数进行查询?
我建议您为您的班级使用自定义管理器,这样您就可以使用:
nserv = service.objects.are_active()
这可以通过以下方式实现:
见custom managers
您可能无法使用list comprehension或generator expression对queryset进行后期处理。
例如:
我也有类似的问题。问题是我必须返回一个QuerySet实例。对我来说,一个快速的解决办法是做如下事情:
很肯定这不是最漂亮和最有效的方法,但我为我工作。
更详细的方法是:
相关问题 更多 >
编程相关推荐