私が持っている場合
Model.objects.all()
content_object=foo、object_id=N のオブジェクトを 1 つだけ取得したい。どうやってやるの?-datetime で注文しているとします。任意の content_type=foo、object_id=N のクエリセットでオブジェクトを 1 つだけ取得できる場合、それは最新のものである必要があります。
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 時間以内のすべてのチェックインが得られますが、content_type=foo および object_id=N ごとに 1 つのオブジェクトのみが必要です。