0

course 表的数据:

weeks days title pk
第10周 1 java程序设计 1
第2周 2 java程序设计 5
第1周 5 数据库 25
.....

取 course 的每一条数据的 title,再去掉重复值,显示在页面:

cous=Course.objects.values('title').distinct().order_by('title')

这样写可以去重,但是获取不到每一条数据对应的 pk,怎么办???

metfat 49
2017-11-14 提问
3 个回答
0

使用value后,返回的每条记录会变成字典,字典的key由value中的值决定。

对于这个问题,请尝试在value中增加传参id?应该可以解决你的问题。

0

cous = Course.objects.values('title','id').distinct('title').order_by('title')
1

mysql貌似不支持distinct(*fields)这样的语法···
如果这样写的话:cous = Course.objects.values('title','id').distinct().order_by('title')
又是以title和id的组合来去重的,不满足你的需求(如果我没理解错的话)。

笨一点的方法,暂时先遍历自己去重。再找找有没有更好的办法。

self · 2017年11月15日

展开评论
0

distinct的列一定要先order_by并且在第一项。

撰写答案

你可能感兴趣的

推广链接