我是否使用了这个错误?:
qs = self.model.objects.exclude(invoice__sale_date__lt=date, id=instance.id)
这会在指定日期之前返回invoice.sale_date
的项目。
这是我的意见:
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)
和输出:
2015-05-01
---
2015-04-01
2015-05-01
如果我删除id=instance.id
部分,则会正确排除具有较早日期的对象。在这种情况下,instance
是一个对象,invoice.sale_date
在这种情况下定义date
值,我也希望将其排除在外。根据{{3}},似乎它应该如何运作,但也许我读错了?
答案 0 :(得分:1)
您正在执行的查询意味着AND。这意味着它将排除sales_date小于date并且id等于instance.id。
如果我理解正确,你可以这样做:
qs = self.model.objects.exclude(invoice__sale_date__lt=date).exclude(id=instance.id)