根据我的标准和排序,我很难返回唯一的Clazz
个对象。 Clazz
和Session
是两个独立的模型,一个类可以有多个会话。
我介绍了order_by
后,我看到了重复的Clazz
个对象。如何删除重复项?一个简单的distinct()
似乎不起作用。
classes = Clazz.objects.filter(location=loc).distinct().order_by('session__start_date', 'session__end_date')
答案 0 :(得分:1)
我想你可以这样做:
classes = Clazz.objects.filter(location=loc).annotate(
startdate=Max('session__start_date'),
end_date=Max('session__end_date')
).order_by('startdate', 'end_date')
答案 1 :(得分:0)
在@ Alasdair的回复之后,最终只是这样做了:
dup_list = []
class_list = []
for c in classes:
if c not in dup_list:
dup_list.append(c)
class_list.append(c)
classes = class_list