给定一个对象:
class M(models.Model): test = models.BooleanField() created_date = models.DateTimeField(auto_now_add=True)
给定样本数据(假设单调增加自动created_date):
M(test=False).save() M(test=True).save() M(test=False).save() X = M(test=True).save() M(test=False).save() Y = M(test=False).save() M(test=False).save() M(test=True).save()
如果给出Y,可以使用Django ORM创建一个返回X的查询(前一个查询,按日期,'test'= True).如果是这样,怎么样?
换句话说:给定Y,如何获得'test'为True的最新前一个元素?
感谢您的想法和反馈,谢谢!
试试这个
M.objects.filter(created_date__lte=Y.created_date).filter(test=True)[0:1]
您还可以添加order_by子句
M.objects.filter(created_date__lte=Y.created_date)\ .filter(test=True)\ .order_by('-created_date')[0:1]
这应该工作.