是否可以只过滤在 bitand
之后大于零的字段的记录?像这样的东西:
MyModel.objects.filter(F('some_field').bitand(4) > 0)
最佳答案
在 Django 1.8(当前未发布)中,您应该能够使用 F()
对象 ( see this ticket ) 进行注释
。
如果您仍在开发中,或者有时间等待 Django 1.8 发布,那么您可以尝试使用 F()
进行注释,然后使用 filter on the annotation :
MyModel.objects.\
annotate(some_annotated_field=F('some_field').bitand(4)).\
filter(some_annotated_field__gt = 0)
这是新 "Query Expressions" feature 的一部分在 Django 1.8 中。
关于python - 检查 F 对象的结果是否大于零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27480385/