Если вам нужны все разные имена, просто сделайте это:
Foo.objects.values('name').distinct()
И вы получите список словарей, каждый с ключом name . Если вам нужны другие данные, просто добавьте больше имен атрибутов в качестве параметров к вызову .values (). Конечно, если вы добавите атрибуты, которые могут различаться в разных строках с одним и тем же именем, вы нарушите .distinct ().
Это не поможет, если вы хотите вернуть полные объекты модели. Но в любом случае получение разных имен и получение полных данных по своей сути несовместимы; откуда вы знаете , какую строку с данным именем вы хотите вернуть полностью? Если вы хотите вычислить какие-либо агрегированные данные для всех строк с данным именем, поддержка агрегации была недавно добавлена в транк Django и может позаботиться об этом за вас.