Django 1.7 では、私の見解では次のコードを使用しています。
driver = get_object_or_404(Driver, id=self.object.id)
cars = driver.car_set.order_by('model__market_date')
for car in cars: # for testing only
print car.id # outputs e.g. 3, 3, 3, 5
これを試すと、モデルの数に応じて、車の結果が重複します (たとえば、車 #3 の 2 倍)。私はこれをしたくありません。
ただし、を使用するcars = driver.car_set.all()
と、重複した結果はありません。しかし、車のリストを で並べ替えたいと思いますmarket_date
。
これを修正する方法についての指針はありますか?私はaggregate()とdistinct()を試しましたが、残念ながら状況は解決しませんでした(または何か間違ったことをしています)。
私の試みdistinct()
:
driver.car_set.order_by('model__market_date').distinct()
重複の原因driver.car_set.order_by('model__market_date').distinct('model__market_date')
重複の原因driver.car_set.order_by('model__market_date').distinct('pk')
収量Exception Value: SELECT DISTINCT ON expressions must match initial ORDER BY expressions