5

カウントが 2 より大きいモデル「Mymodel」のフィールド「タイトル」の重複エントリを取得する必要があります。これにより、Mymodel からすべての重複を削除できます。

以下のようにクエリを実行しようとしていますが、「AttributeError: 'bool' object has no attribute 'lookup'」という例外がスローされます。

movies = Mymodel.objects.values('title')\
            .annotate(title_count=Count('title'), distint=True)\
            .filter(title_count__gt=2)

同等の生の SQL クエリ

SELECT count(title) as num_title, title from app_mymodel group by title having count(title) > 2;

ここで同様の質問を見つけました.Django ORMでカウントをフィルタリングしていますが、うまくいきません.

どんな助けでも素晴らしいでしょう。

4

2 に答える 2

7

distinctに渡すことができないと思うので、なしで同様のクエリを試してくださいannotate

movies = Mymodel.objects.values('title')\
        .annotate(title_count=Count('title'))\
        .filter(title_count__gt=2)
于 2013-01-30T06:47:24.333 に答える
-4

Count関数には個別の引数がありますが、distintはないため、例外 AttributeError がスローされます。

于 2014-12-11T16:19:39.870 に答える