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,无法在这里更改数据库。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 回答