21

次のクエリを実行するにはどうすればよいですか。

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を変更できません。djangoの回避策は何ですか?

4

2 に答える 2

73
OrderNotes.objects.filter(item=item).values_list('shared_note', flat=True).distinct()
于 2013-03-26T02:37:25.243 に答える
7

これは私が思いついた最高のものです:

>>> 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)
于 2013-03-25T22:43:41.760 に答える