首页 > 解决方案 > Django Querset 提取 PK

问题描述

我有以下代码。

queryset = Registry.objects.filter(
        epas_id__contains=uuid_obj_id
    ).values_list('pk', flat=True)

根据我的数据,这正确返回以下内容:

<QuerySet [UUID('d9a0977c-5bc0-4667-af24-5e95b83761d4'), UUID('b2d0f086-0a55-44cc-b1ba-3ebf598d24ae')]>

但我想要做的是只提取列表中 pk 的值,所以是这样的:

['d9a0977c-5bc0-4667-af24-5e95b83761d4', 'b2d0f086-0a55-44cc-b1ba-3ebf598d24ae']

任何关于我如何实现这一目标的想法和帮助将不胜感激。

标签: django

解决方案


我们可以使用列表理解,并调用str(…)每个元素,例如:

queryset = Registry.objects.filter(
    epas_id__contains=uuid_obj_id
).values_list('pk', flat=True)

result = [str(pk) for pk in queryset]

推荐阅读