Ответ 1
OrderNotes.objects.filter(item=item).values_list('shared_note', flat=True).distinct()
Как бы я выполнил следующий запрос:
OrderNotes.objects.filter(item=item).distinct('shared_note')
В принципе, мне нужно получить все элементы OrderNotes
, отличные от shared_note
. Когда я пытаюсь сделать это, я получаю:
raise NotImplementedError('DISTINCT ON fields is not supported by this database backend')
NotImplementedError: DISTINCT ON fields is not supported by this database backend
Я использую mysql и не могу изменить db здесь. Каким будет обходной путь в джанго?
OrderNotes.objects.filter(item=item).values_list('shared_note', flat=True).distinct()
Это лучшее, что я придумал:
>>> items, item_ids = [], []
>>> for item in OrderNotes.objects.filter(shared_note=219):
... if item.shared_note not in item_ids:
... items.append(item)
... item_ids.append(item.shared_note)