我有一个ArrayField有选择,我正在尝试过滤选择:
PAYMENT_CASH = '0'
PAYMENT_CARD = '1'
PAYMENT_BANK = '2'
PAYMENT_ONLINE = '3'
PAYMENT = (
(PAYMENT_CASH, _('Cash')),
(PAYMENT_CARD, _('Card')),
(PAYMENT_BANK, _('Bank')),
(PAYMENT_ONLINE, _('Online')),
)
options = ArrayField(models.CharField(max_length=1, choices=PAYMENT, default='0'), size=4)
当我使用 Location.objects.filter(city__id='683506').values_list('options', flat=True)
它返回我
<QuerySet [['0'], ['0', '1', '2', '3'], ['0', '1', '2'], ['0', '1'], ['0', '1', '2', '3']]>
我希望获得所有使用的选项。 我如何合并查询或将它们放入列表中并合并它们?
这就是我希望得到的['0', '1', '2', '3']
最佳答案
您可以使用chain :
qs = Location.objects.filter(city__id='683506').values_list('options', flat=True)
options = set(chain(*qs))
我在第二行使用了 set 来删除重复的选项。
关于python - Django如何合并查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46904559/