django model filter keywords 除法过滤
在使用django的model filter 进行查询过滤的时候,往往需要对表中的两个列数据进行除法运算后进行的需求。这样的需求怎么解决?
自己思索的是不是新添一个数据字段,在录入的数据时候计算好保存在新添的字段中,当然这种办法可行,不过需要考虑兼容之前已有的数据,操作相对比较麻烦。
另外一种办法,在filter的时候写个方法或者重构filter对数据过滤。在动手之前查询下是不是django里面已经提供该方法,毕竟已经很成熟且这样的需求也较为普遍。
果不其然,django确实提供了此类解决的方案,具体代码如下:
class Department(models.Model):
##...
num_employees = models.PositiveIntegerField()
num_managers = models.PositiveIntegerField()
from django.db.models import F
Department.objects.filter(num_managers__gt=F('num_employees'))
具体参考:How can I get two Python representation of the same Database table?
里面提供蛮多有价值的场景,如or and过滤操作,group_by操作等
您可能也对下面文章感兴趣:
There are 1 Comments to "django model filter keywords 除法过滤"