如何使用Django的Related Lookups?关联字段lt/lte/gt/gte操作含义咨询
Django关联字段的lt/lte/gt/gte查询含义
这些查询操作不是集合比较,本质是针对关联对象的主键值进行的有序类型(数值、日期等)比较,逻辑和直接操作关联字段对应的主键字段完全一致。
举个实际例子:
假设你有两个模型:
class Author(models.Model): id = models.IntegerField(primary_key=True) name = models.CharField(max_length=100) class Book(models.Model): title = models.CharField(max_length=100) author = models.ForeignKey(Author, on_delete=models.CASCADE)
当你执行Book.objects.filter(author__gt=3)时,Django会自动将其转换为对book.author_id字段的大于比较,等价于Book.objects.filter(author_id__gt=3),最终筛选出所有作者ID大于3的书籍。
同理:
author__lt=5→ 筛选作者ID小于5的书籍author__gte=2→ 筛选作者ID大于等于2的书籍author__lte=10→ 筛选作者ID小于等于10的书籍
这种查询逻辑是Django将关联字段的比较操作直接映射到了其对应的主键字段上,因为文档默认用户能联想到主键的比较逻辑,所以没有专门单独说明。
内容的提问来源于stack exchange,提问作者odigity
相关产品推荐
相关产品推荐

