如何从Django QuerySet中提取UUID主键并转换为普通字符串列表
实现方法
你可以通过以下几种常用方案完成UUID对象到字符串的转换:
- 方案1:Python层直接转换(最简单常用)
你拿到的QuerySet中每个元素都是原生UUID对象,直接遍历转字符串即可:
# 列表推导式写法 pk_str_list = [str(pk) for pk in queryset] # 或者用map函数写法 pk_str_list = list(map(str, queryset))
运行后直接得到你需要的纯字符串格式列表。
- 方案2:数据库层面转换(适合大数据量场景)
如果不想在Python层做额外遍历,可以用Django内置的Cast函数在查询时就把主键转为字符串类型:
from django.db.models import CharField from django.db.models.functions import Cast queryset = Registry.objects.filter( epas_id__contains=uuid_obj_id ).annotate( pk_str=Cast('pk', output_field=CharField()) ).values_list('pk_str', flat=True) pk_str_list = list(queryset)
内容的提问来源于stack exchange,提问作者Mark R
相关产品推荐
相关产品推荐

