繁体   English   中英

查询(获取)django中RangeField的上限

[英]Query (get) upper bound of RangeField in django

我想通过django queryset获取RangeField的上限。

当您有权访问python对象时, my_model.size_range.upper可以正常工作。 不在查询引擎内,不使用FWhenCase ...

class MyModel(models.Model):
    size_range = IntergerRangeField()

MyModel.objects.all().annotate(new_upper=F('size_range__upper') + 1)
FieldError: Unsupported lookup 'upper' for IntegerRangeField or join on the field not permitted.

任何想法 ?

我找到了一个半解决方案:

from django.db.models.functions import Upper

MyModel.objects.all().annotate(
      upper=Upper('size_range')
  ).annotate(
      new_upper=F('upper') + 1
  )

哪个感到笨拙,但至少它是个笨蛋

如果有人知道更好吗? 我确信可以直接查询原始值。

你想用它做什么? 您可以使用endswith

MyModel.objects.filter(size_range__endswith=some_value))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM