Как получить отдельные данные в кверисете Django views?
У меня есть следующие записи в таблице
Я хочу получить все sender_id, где receiver_id равно 15, и все receiver_id, где sender_id равно 15. Как я могу определить queryset.
Я пробовал следующее
class ContactListAPI(GenericAPIView, ListModelMixin ):
def get_queryset(self):
return Messages.objects.filter(Q(sender=15) | Q(receiver=15))
serializer_class = ContactsSerializer
permission_classes = (AllowAny,)
def get(self, request , *args, **kwargs):
return self.list(request, *args, **kwargs)
но это дает мне все записи, но мне нужны только отличительные значения.
просто я хочу получить все идентификаторы получателей, где отправитель равен 15, и все идентификаторы отправителей, где получатель равен 15. здесь мой ожидаемый результат 11,17. Скажите, как я могу получить их, определив набор запросов.
Похоже, что вы ищете метод distinct(). см. документы Django
Messages.objects.filter(Q(sender=15) | Q(receiver=15)).distinct('sender', 'receiver')