在django queryset中使用ugte

在django queryset中使用ugte,django,django-models,user-input,django-queryset,Django,Django Models,User Input,Django Queryset,我有一个搜索fn我在哪里做这件事 模板 <input class="range-slider-3" type="text" name="years"> 此queryset将在其配置文件中显示年数exp值的所有用户,无论其数量如何。 如果我在搜索框中输入100或40或44或78,我会得到所有用户,即使他们的年数在数据库中为2 为什么会这样?也许我做错了什么。如果在框中输入100,则搜索的用户年数exp大于100。如果查看用户数据库行中的字段,是否有大于100的数字?什么样的年数?您使

我有一个搜索fn我在哪里做这件事

模板

<input class="range-slider-3" type="text" name="years">
queryset
将在其配置文件中显示年数exp值的所有用户,无论其数量如何。 如果我在搜索框中输入100或40或44或78,我会得到所有用户,即使他们的
年数在数据库中为2


为什么会这样?也许我做错了什么。

如果在框中输入100,则搜索的用户年数exp大于100。如果查看用户数据库行中的字段,是否有大于100的数字?什么样的年数?您使用哪种django版本

要使一切正常工作,您必须确保一切正常:

  • 确保表单方法为POST,并且
    request.POST.get('years')
    不为空
  • 您可能希望先将
    request.POST.get('years')
    转换为int,即使您的RDBMS应该能够理解您的字符串实际上是用作整数的

将yrs作为字符串返回,并将值与整数进行比较,结果如下:

'2' >= 100 
不幸的是,在Python2.x中这是正确的

您需要将yrs转换为整数:

yrs = int(request.POST.get('years'))

我不认为年是一年。这可能需要几年的时间。100年就是一个例子。我搜索的任何值的行为都相同。是的,我一写这篇文章就这么想。太好了。模型字段也是
CharField
而不是
IntegerField
。现在工作很好,谢谢
yrs = int(request.POST.get('years'))