Django使用过滤条件作为计数来注释计数

jay*_*l d 4 django django-models

我需要在模型"Mymodel"中获取字段"title"的重复条目,其中count大于2.这样我就可以从Mymodel中删除所有重复项.

我试图执行下面的查询,但它抛出异常"AttributeError:'bool'对象没有属性'查找'"

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

等效原始sql查询

SELECT count(title) as num_title, title from app_mymodel group by title having count(title) > 2;
Run Code Online (Sandbox Code Playgroud)

我在这里发现了类似的问题,用Django ORM过滤计数但是它不适合我.

任何帮助都会很棒.

Roh*_*han 6

尝试没有相似的查询distinct,因为我认为你不能将其传递给annotate.

movies = Mymodel.objects.values('title')\
        .annotate(title_count=Count('title'))\
        .filter(title_count__gt=2)
Run Code Online (Sandbox Code Playgroud)