Вот является способ иметь базу данных сделать работу для вас:
farms = qs.values_list('farm', flat=True).distinct()
#values_list() is new in Django 1.0
возвращаемое значение должно оценить что-то вроде:
(<Farm instance 1>, <Farm instance5>)
были фермами, которые будут иметь деревья в этом конкретном запросе.
Для всех хозяйств, которые имеют деревья, использовать qs = Tree.objects
Имейте в виду, что если вы добавляете order_by('some_other_column')
то различны будут применяться к различным комбинациям «фермы» и «some_other_column», потому что другой столбец будет также в sql запрос для заказа. Я думаю, что это ограничение (а не намеченная функция) в api, это описано в documentation.
By "уникальный" вы имеете в виду "отчетливый"? –