首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django .exclude()返回意外结果

Django .exclude()返回意外结果
EN

Stack Overflow用户
提问于 2016-08-03 02:44:54
回答 1查看 46关注 0票数 0

我用错了吗?:

qs = self.model.objects.exclude(invoice__sale_date__lt=date, id=instance.id)

这将返回在指定日期之前具有invoice.sale_date的项目。

这是我的输入:

代码语言:javascript
复制
print(date)
print("---")
qs = self.model.objects.exclude(invoice__sale_date__lt=date, id=instance.id)
for q in qs:
    print(q.invoice.sale_date)

和输出:

代码语言:javascript
复制
2015-05-01
---
2015-04-01
2015-05-01

如果我删除id=instance.id部分,日期较早的对象将被正确排除。本例中的instance是一个对象,它的invoice.sale_date定义了本例中的date值,我也希望将其排除在外。根据the docs的说法,这似乎就是它应该如何工作的,但也许我读错了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-03 02:49:53

您正在执行的查询表示和。这意味着它将排除小于sales_date且id等于instance.id的日期。

如果我理解正确的话,你可以这样做:

代码语言:javascript
复制
qs = self.model.objects.exclude(invoice__sale_date__lt=date).exclude(id=instance.id)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38728210

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档