【问题标题】:Django filter with bool condition具有布尔条件的 Django 过滤器
【发布时间】:2015-11-29 09:32:41
【问题描述】:

在一个视图中,我想获得一个 queryset 值,其中只有字段 current_num 的值小于 current_tot 的记录是显示:

我试过没有成功:

 qs = qs.filter( F('current_tot')!=F('current_num'))

如果查找小于等于,它会起作用:

    qs = qs.filter( current_num__lte=F('current_tot'))

如果查找小于,则不显示结果:

    qs = qs.filter( current_num__lte=F('current_tot'))

【问题讨论】:

  • 您似乎复制了同一行代码,其中一个有效,另一个无效...应该使用__lt 吗?你确定有匹配的结果吗?

标签: django django-queryset django-filter


【解决方案1】:

你不能在等式的左边使用 F。 要获得您想要的,请使用 exclude 而不是 filter :

qs = qs.exclude(current_tot = F('current_num'))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-26
    • 1970-01-01
    • 1970-01-01
    • 2011-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多