django исключает пользователей из набора запросов, если они появляются более одного раза - PullRequest
0 голосов
/ 05 августа 2011

У меня есть набор записей, который захватил множество данных, то есть сколько раз кто-то что-то купил.

Я работаю над небольшой системой уведомлений, основанной на их предыдущих покупках, которая отправляет им электронное письмо, если они купили что-то в определенной категории.

возможно, что этот пользователь встречается более одного раза в этом наборе записей, и последнее, что я хочу сделать, это раздражать кого-то, отправляя ему 50 или 60 писем в один день.

Есть ли способ, которым я могу циклически просматривать данные и получать только одного пользователя на категорию?

Вот что у меня есть

* * 1010

Вот что я бегу в данный момент

customers = Customer.objects.annotate(Count('user__id')).order_by()

результат:

[<Customer: user1>, <Customer: user2>, <Customer: user1>, <Customer: user1>, <Customer: user1>, <Customer: john>, <Customer: user1>]

Ответы [ 2 ]

0 голосов
/ 05 августа 2011

Попробуйте использовать разные:

customers = Customer.objects.annotate(Count('user__id')).distinct()
0 голосов
/ 05 августа 2011

Используйте метод .distinct ().Это предотвратит дублирование данных, поэтому все пользователи будут отображаться в наборе запросов только один раз.

customers = Customer.objects.annotate(Count('user__id')).order_by().distinct()
...