如果我有
Model.objects.all()
我只想为任何 content_object=foo、object_id=N 获取一个对象。我怎样才能做到这一点?假设我按-datetime 订购。如果我只能在查询集中为任何 content_type=foo、object_id=N 获取一个对象……它应该是最新的。如何指定我只需要 1 个对象用于 content_object 和 object_id 的任意组合?
class CheckIn(models.Model):
...
owner = models.ForeignKey('auth.User')
datetime = models.DateTimeField(editable=False, auto_now=True)
...
# This is the object that should be geocoded, hopefully
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
content_object = generic.GenericForeignKey()
class Meta:
ordering=( '-datetime', )
然后获取一个查询集:
checkins = CheckIn.objects.filter(
datetime__gte=datetime.datetime.now() -
datetime.timedelta(hours=24),
)
这可以给我过去 24 小时内的所有签到,但我只想要 1 个对象 PER content_type=foo 和 object_id=N。