【问题标题】:How to do a less than or equal to filter in Django queryset?如何在 Django 查询集中进行小于或等于过滤?
【发布时间】:2012-04-19 20:58:57
【问题描述】:

我正在尝试按每个用户配置文件中称为配置文件的自定义字段过滤用户。该字段称为level,是0-3之间的整数。

如果我使用 equals 过滤,我会按预期获得具有所选级别的用户列表:

user_list = User.objects.filter(userprofile__level = 0)

当我尝试使用小于过滤时:

user_list = User.objects.filter(userprofile__level < 3)

我得到错误:

未定义全局名称“userprofile__level”

有没有办法通过 进行过滤,还是我找错了树。

【问题讨论】:

标签: python django django-queryset


【解决方案1】:

小于或等于:

User.objects.filter(userprofile__level__lte=0)

大于或等于:

User.objects.filter(userprofile__level__gte=0)

同样,lt 表示小于,gt 表示大于。大家可以in the documentation找到。

【讨论】:

  • 哇,真快:)。这适用于小于或等于,但是小于呢? (userprofile__level__lt=3) 似乎不起作用
  • 确实如此;但无论如何,您也可以使用 exclude(__gte) 而不是 filter(__lt)。
  • 别忘了有两条__下划线
  • 我收到此错误--> {FieldError}AutoField 的不支持查找“级别”或不允许加入该字段。
  • 问题,这里的=0是什么意思?错误的?真的吗?
猜你喜欢
  • 2010-10-15
  • 2016-02-19
  • 2016-04-17
  • 1970-01-01
  • 2011-12-25
  • 2019-09-13
  • 2019-08-15
  • 1970-01-01
相关资源
最近更新 更多