我在django-models
中有问题筛选。如何返回所有记录,但排除最后一项
我想返回特定animal
的所有记录,但不包括基于最新的created_at
值的最后一项,并按降序排序。
我有这个模型。
class Heat(models.Model):
# Fields
performer = models.CharField(max_length=25)
is_bred = models.BooleanField(default=False)
note = models.TextField(max_length=250, blank=True, null=True)
result = models.BooleanField(default=False)
# Relationship Fields
animal = models.ForeignKey(Animal, related_name='heats', on_delete=models.CASCADE)
created_at = models.DateTimeField(auto_now_add=True, editable=False)
last_updated = models.DateTimeField(auto_now=True, editable=False)
我能够通过这些原始SQL脚本以达到期望的结果。但我想要一个Django方法。
SELECT
*
FROM
heat
WHERE
heat.created_at != (SELECT MAX((heat.created_at)) FROM heat)
AND heat.animal_id = '2' ORDER BY heat.created_at DESC;
请帮助。
负面索引不适用于查询集! – schwobaseggl
@艺术,感谢您的回复,但schwobaseggl是正确的,即使我将其更改为1仍然不是理想的结果。 –
@schwobaseggl很高兴知道,谢谢 – Art