django - 在 django 查询集中使用 __gte

标签 django django-models user-input django-queryset

我有一个搜索功能,我在哪里做这件事。

模板

<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/

相关文章:

Django REST 框架 APIClient 在 shell 中进行身份验证,但不在我的单元测试中

django admin 不会将对象添加到 Manytomany 字段中

c - 尝试创建将用户输入字符串与C中的一组预定义输入字符串进行比较的程序

python - 如何在 Django 模型中编写方法来检索相关对象?

python - 如何测试 SOAP Web 服务的 RPC?

Django:FILE_UPLOAD_MAX_MEMORY 与 DATA_UPLOAD_MAX_MEMORY

python - 独立 Django ORM - 无法识别默认设置

python - Django CASCADE 和 post_delete 交互

php - 在 PHP 中转义 Python 字符串的最佳方法是什么?

Python:如何使用输入函数在句子中间获取用户输入(填空样式)?