Django ORMを使用してこのタイプのwhere
句を生成するにはどうすればよいですか?Django:タプルを組み合わせた列をフィルタリングする
where (datetime, id) < (%last_datetime, %last_id)
背景
私が持っているこのようなモデル:
class Messages(models.Model):
# Implicit "id" serial primary key
datetime = models.DateTimeField(db_index=True)
message = models.CharField(max_length=1024)
私はdatetime
でメッセージをソートし、複数のメッセージがある場合、一貫したソートのためのタイブレーカーとしてid
を使用同じdatetime
は:
Messages.objects.order_by('datetime', 'id')
これで、既知のメッセージの前に注文されたメッセージを除外する必要があります。
ありがとうございますが、これは機能しませんフィルタに 'id'を含めます。私が示した 'where'節は、値をリレーションに組み合わせ、リレーションを比較することで動作します。これは、Pythonのタプルを比較するのと非常に似ています。 –