Django select only rows with duplicate field values

Предположим, у нас есть модель в django, определенная следующим образом:

class Literal:
    name = models.CharField(...)
    ...

Поле Name не уникально, и поэтому может иметь дублирующиеся значения. Мне нужно решить следующую задачу: Выбрать все строки из модели, которые имеют хотя бы одно дублирующее значение поля name.

Я знаю, как сделать это с помощью обычного SQL (возможно, это не лучшее решение):

select * from literal where name IN (
    select name from literal group by name having count((name)) > 1
);

Итак, можно ли выбрать это с помощью django ORM? Или лучшее решение SQL?

85
задан Chris Martin 29 July 2014 в 00:31
поделиться