PeeWee: select()总是重复前两行


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(),但似乎没有任何影响,真是令人困惑。

使用sqlite,如果您在循环内保存,这可能是问题:

https://github.com/coleifer/peewee/issues/12 issuecomment - 5614404

最新更新