Вот быстрое решение:
from django.db import connection
query = "SELECT id FROM table_name GROUP BY unique_column HAVING COUNT(unique_column)>1"
cursor = connection.cursor()
cursor.execute(query)
ids_list = [item[0] for item in cursor.fetchall()]
теперь вы можете сделать:
Some_Model.objects.filter(id__in=ids_list).delete()
или, если ids_list
был слишком велик, чтобы быть обработанным вашими БД
Вы можете сегментировать его на куски, которые могут быть обработаны им:
seg_length = 100
ids_lists = [ids_list[x:x+seg_length] for x in range(0,len(ids_list),seg_length)]
for ids_list in ids_lists:
SomeModel.objects.filter(id__in=ids_list).delete()