Как генерировать уникальные результаты в наборе запросов Django? - PullRequest
0 голосов
/ 01 ноября 2019

Я извлекаю набор объектов в представлении django, используя следующий запрос:

query=list(channel.objects.order_by('-points')[:10])
shuffle(query)
query2=list(ChannelPost.objects.annotate(num_images=Count('channelpostmedia')).filter(num_images__gt=0).order_by('-user_like').distinct()[:6])
query4=list(CommunityPost.objects.distinct().annotate(num_images=Count('communitypostmedia')).filter(num_images__gt=0).order_by('-user_like')[:16])
query3=list(Communities.objects.distinct().order_by('-points')[:5])
query5=list(channel.objects.distinct().order_by('-chaneldate')[:9])
shuffle(query2)
shuffle(query3)
shuffle(query4)
shuffle(query5)
query6=list(post.objects.order_by('-DatePosted'))

Основная проблема с набором запросов состоит в том, что результат всегда содержит дубликаты объектов, что нежелательно.

Редактировать 1 : Мой вопрос отличается от предложенного. Я выполняю фильтрацию по количеству моделей изображений, которые может иметь модель пост-модели с использованием аннотации, поэтому здесь невозможно применить то же решение.

...