Как получить объекты из различных () в Django? - PullRequest
0 голосов
/ 17 мая 2011

Интересно, можно ли изменить этот запрос, чтобы он возвращал User объекты вместо merchant_id (User).

(User.objects.get(id=merchant['merchant_id']) for merchant in self.user.visits.values('merchant_id').distinct())

Ответы [ 2 ]

2 голосов
/ 18 мая 2011

Вы создаете 1 запрос БД для каждого поиска пользователя (который является торговцем?). Нужно освежить мою Django ORM, но я бы сделал что-то вроде:

User.objects.filter(id__in=[ merchant['merchant_id'] for merchant in self.user.visits.values('merchant_id').distinct() ])
1 голос
/ 18 мая 2011

Как это звучит?

merchants_visited = self.user.visits.merchants.all().distinct()
return User.objects.filter(visits__merchants__in=merchants_visited, profile=self)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...