如何根据模型中 2 个字段范围内的变量查询行
Posted
技术标签:
【中文标题】如何根据模型中 2 个字段范围内的变量查询行【英文标题】:How to query a row based on a variable that is within the range of 2 fields in my model 【发布时间】:2019-08-27 06:30:15 【问题描述】:我想查询我的变量在模型中的 2 个字段范围内的行。
假设我有 x = 100 型号 = 具有 3 个字段 price_start、price_end、category 的产品。
我想知道哪个类别是我的“x”变量。
我如何在 django 中查询这个?
附言这只是我的问题的一个简化示例。 假设 price_start 和 price_end 不重叠,如何知道类别。
【问题讨论】:
【参考方案1】:您可以尝试使用 gte 和 lte:
products = Product.objects.filter(price_start__gte=x, price_end__lte=x)
for product in products:
print(product.category)
# Or
products.values_list('category')
【讨论】:
所以...以这种方式完成时不会返回查询。当范围的开始和结束是相同的字段时,它可以工作,例如 price__gte=10,price__lte=20。 不,它应该可以正常工作:)。请确保 price_start 大于 x 且 price_end 小于 x。【参考方案2】:对于 ORM 试试这个
x = yourModel.objects.filter(start_price__level__lte= "number",price_end__level__gte"number")
所以 x 将是模型的查询集
你可以在这篇文章中看到
这里是a link!
【讨论】:
你能告诉我 level 在这里做什么吗?它不在文档中的示例中。这是旧版本的吗?我使用最新版本的 django。对不起,如果菜鸟问题..以上是关于如何根据模型中 2 个字段范围内的变量查询行的主要内容,如果未能解决你的问题,请参考以下文章