Django QuerySet查询或过滤&“奇数&"和/或"偶&"特定领域的价值 [英] Django QuerySet querying or filtering "Odd" and/or "Even" value in a particular field

查看:49
本文介绍了Django QuerySet查询或过滤&“奇数&"和/或"偶&"特定领域的价值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

# Example
from django.db import models

class ParkingLot(models.Model):
    lot_number = models.IntegerField()
    is_reserved = models.BooleanField()

我对奇数x偶数 lot_number 感兴趣.在Django中推荐的过滤方式是什么?

I'm interested in Odd xor Even lot_number. What's the recommended way to filter that in Django?

我在下面发布了一些答案.

I've posted some answer below.

有人知道我们是否可以使用直接比较之类的方法,例如 F('lot_number')%2 == 0 技术吗?

Does anyone know if we can use a direct comparison something like F('lot_number') % 2 == 0 technique?

推荐答案

在Django> 1.8中,您可以使用

In Django >1.8 you could use F() expressions:

# ParkingLots with even numbered lot_numbers
ParkingLot.objects.annotate(odd=F('lot_number') % 2).filter(odd=False)  

# ParkingLots with odd numbered lot_numbers
ParkingLot.objects.annotate(odd=F('lot_number') % 2).filter(odd=True)  

这在旧版本的Django中不起作用.

This won't work in older versions of Django though.

这篇关于Django QuerySet查询或过滤&“奇数&"和/或"偶&"特定领域的价值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆