このクエリを Django でまとめる手助けが必要です。ここでの例は、要点を絞るために単純化されています。
MyModel(models.Model):
created = models.DateTimeField()
user = models.ForeignKey(User)
data = models.BooleanField()
英語で作成したいクエリは次のようになります。
昨日作成されたデータが False であるすべてのレコードを教えてください。その同じ範囲のデータは、特定のユーザーに対して True として表示されません。
明確でない場合の入力/出力の例を次に示します。
表の値
ID Created User Data
1 1/1/2010 admin False
2 1/1/2010 joe True
3 1/1/2010 admin False
4 1/1/2010 joe False
5 1/2/2010 joe False
出力クエリセット
1 1/1/2010 admin False
3 1/1/2010 admin False
私が探しているのは、レコード #4 を除外することです。この理由は、指定された範囲「yesterday」では、データがレコード #2 のユーザーに対して 1 回 True として表示されるため、レコード #4 が除外されるためです。
ある意味では、2 つのクエリが実行されているように見えます。1 つは指定された範囲内のレコードを決定するためのもので、もう 1 つは「True」レコードと交差するレコードを除外するためのものです。
Django ORM でこのクエリを実行するにはどうすればよいですか?