我有一个搜索功能,我在哪里做这件事。
模板
<input class="range-slider-3" type="text" name="years">
查看
yrs = request.POST.get('years')
users = User.objects.filter(years_of_exp__gte=yrs)
此查询集
会在其个人资料中提供具有years_of_exp值的所有用户,无论数量多少。
如果我在搜索框中输入 100 或 40 或 44 或 78,我会得到所有用户,即使他们的 years_of_exp
在数据库中为 2。
发生这种情况有什么原因吗?也许我做错了什么。
最佳答案
您将以字符串形式返回 yrs 并将该值与整数进行比较,这将导致如下比较:
'2' >= 100
不幸的是(对你来说)这在 python 2.x 中是 True 。
您需要将 yrs 转换为 int:
yrs = int(request.POST.get('years'))
关于django - 在 django 查询集中使用 __gte,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25067386/