załóżmy, że mamy model w Django zdefiniowane następująco:Django tylko wybrane wiersze z zduplikowanych wartości pól
class Literal:
name = models.CharField(...)
...
Nazwa pola nie jest wyjątkowy, a zatem mogą mieć zduplikowane wartości. Muszę wykonać następujące zadanie: Zaznacz wszystkie wiersze z modelu, które mają co najmniej jedną zduplikowaną wartość pola name
.
wiem jak to zrobić przy użyciu zwykłego języka SQL (może nie być najlepszym rozwiązaniem):
select * from literal where name IN (
select name from literal group by name having count((name)) > 1
);
Tak, to jest możliwe, aby wybrać tę Django ORM? Lub lepsze rozwiązanie SQL?
Prawdopodobnie miałeś na myśli '' Literal.objects.values ('name'). adnotate (name_count = Count ("name")). Filter (name_count__gt = 1) ''? – dragoon
'name' może nie być unikatowe, ale jestem prawie pewien, że' id' jest. –
Oryginalne zapytanie daje "Nie można rozwiązać słowa kluczowego" id_count "w polu" ' – dragoon