如何根据模型中 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】:

您可以尝试使用 gtelte

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 个字段范围内的变量查询行的主要内容,如果未能解决你的问题,请参考以下文章

Django:如何根据来自行的数据和来自另一个模型的数据将聚合字段添加到查询集中?

while循环内的变量范围

如何根据 R 中的行标记数据框中的所有变量

Oracle中根据时间范围查询数据

如何从 HSQL 中检索行范围内的数据?

如何根据javascript中的系统范围主题将道具发送到变量?