# Example
from django.db import models

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

我对 Odd xor Even lot_number 感兴趣。
在 Django 中过滤它的推荐方法是什么?

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

挑战

有谁知道我们是否可以使用类似 F('lot_number') % 2 == 0 技术的直接比较?

最佳答案

在 Django >1.8 你可以使用 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 中不起作用。

关于python - Django QuerySet 查询或过滤特定字段中的 "Odd"和/或 "Even"值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30267460/

10-11 16:57