ids = "1,2,3,4"
idlist = [int(i) for i in ids.split(',')] # [4, 1, 2, 3]
jobs = Job.select().join(User).distinct().where(Job.id << idlist).dicts()
if (jobs.count()):
for i, job in enumerate(jobs):
print str(i) + " : " + str(job['id'])
返回:
0 : 1
1 : 2
2 : 1
3 : 2
4 : 3
5 : 4
预期:
0 : 1
1 : 2
2 : 3
3 : 4
造成这种情况的原因是什么? jobs.count()
返回4.我甚至添加了distinct(),但似乎没有任何影响,真的令人困惑。
答案 0 :(得分:1)
如果你在循环中保存sqlite,这可能是问题:
https://github.com/coleifer/peewee/issues/12#issuecomment-5614404