如何在Django queryset中进行小于或等于过滤?

Fin*_*ish 156 python django django-queryset

我试图通过名为profile的每个用户配置文件中的自定义字段过滤用户.该字段称为级别,是0-3之间的整数.

如果我使用equals进行过滤,我会得到一个具有所需级别的用户列表:

user_list = User.objects.filter(userprofile__level = 0)
Run Code Online (Sandbox Code Playgroud)

当我尝试使用小于:

user_list = User.objects.filter(userprofile__level < 3)
Run Code Online (Sandbox Code Playgroud)

我收到错误:

未定义全局名称"userprofile__level"

是否有过滤<或>,或者我在错误的树上吠叫.

Lak*_*sad 293

小于或等于:

User.objects.filter(userprofile__level__lte=0)
Run Code Online (Sandbox Code Playgroud)

大于或等于:

User.objects.filter(userprofile__level__gte=0)
Run Code Online (Sandbox Code Playgroud)

同样,lt小于和gt大于.您可以在文档中找到它们.

  • 哇,那很快:).这适用于小于或等于,但如何不到?(userprofile__level__lt = 3)似乎不起作用 (2认同)
  • 确实如此;但无论如何,您也可以执行排除(__gte)而不是过滤器(__lt)。 (2认同)
  • 并且不要忘记有两个`__`下划线 (2认同)
  • 请记住通过您的字段更改“userprofile__level”,例如“youfield__lte”。@AravindRPillai (2认同)