使用 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),具体取决于模型的数量。我不想要这个。
但是,当我使用时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