Python 如何基于模型中2个字段范围内的变量查询行

Python 如何基于模型中2个字段范围内的变量查询行,python,django,Python,Django,我想查询一行,其中我的变量在模型中的2个字段范围内 假设我有x=100 型号=产品,有3个字段:价格开始、价格结束、类别 我想知道哪个类别是我的“x”变量 如何在django中查询此信息 p、 这只是我问题的一个简单例子。 假设price\u start和price\u end不重叠,如何知道类别。您可以使用和这样尝试: products = Product.objects.filter(price_start__gte=x, price_end__lte=x) for product in

我想查询一行,其中我的变量在模型中的2个字段范围内

假设我有x=100 型号=产品,有3个字段:价格开始、价格结束、类别

我想知道哪个类别是我的“x”变量

如何在django中查询此信息

p、 这只是我问题的一个简单例子。
假设price\u start和price\u end不重叠,如何知道类别。

您可以使用这样尝试:

products = Product.objects.filter(price_start__gte=x, price_end__lte=x)

for product in products:
    print(product.category)

# Or

products.values_list('category')

您可以使用这样尝试:

products = Product.objects.filter(price_start__gte=x, price_end__lte=x)

for product in products:
    print(product.category)

# Or

products.values_list('category')
试试这个

x = yourModel.objects.filter(start_price__level__lte= "number",price_end__level__gte"number")
所以x将是模型的查询集

你可以在这篇文章中看到

给你

对于ORM,请尝试此

x = yourModel.objects.filter(start_price__level__lte= "number",price_end__level__gte"number")
所以x将是模型的查询集

你可以在这篇文章中看到


给你

你能告诉我level在这里做什么吗?它不在文档中的示例中。这是旧版本的吗?我使用最新版本的django。对不起,如果没有问题,你能告诉我level在这里做什么吗?它不在文档中的示例中。这是旧版本的吗?我使用最新版本的django。抱歉,如果没有问题…那么…这样做时,它不会返回查询。当范围的开始和结束是同一个字段时,它就工作了,比如如果price_ugte=10,price_ulte=20。不,它应该工作得很好:)。请确保price_start大于x,price_end小于x。这样做时,它不会返回查询。当范围的开始和结束是同一个字段时,它就工作了,比如如果price_ugte=10,price_ulte=20。不,它应该工作得很好:)。请确保price_start大于x,price_end小于x。