Dar*_*ryl 28 python django django-models django-queryset
我有一个Django查询集过滤的怪癖(?):
ipdb> MagazineIssue.objects.filter(id__in=l_magazines.values_list('id'))
Out[0]: []
Run Code Online (Sandbox Code Playgroud)
要么
ipdb> MagazineIssue.objects.filter(id__in=[l_magazine.id for l_magazine in l_magazines])
Out[0]: [<MagazineIssue: Architecture Australia, Jan 1995 (#1)>]
Run Code Online (Sandbox Code Playgroud)
和
ipdb> l_magazines.values_list('id')
Out[0]: [(1,)]
ipdb> [l_magazine.id for l_magazine in l_magazines]
Out[0]: [1]
Run Code Online (Sandbox Code Playgroud)
那么,如何使用values_list()?(生产):
[1]
Run Code Online (Sandbox Code Playgroud)
或是python列表理解'走的路'?
Clo*_*ans 58
试试l_magazines.values_list('id', flat=True).这将返回一个id列表,而不是单个id元组列表.