如何从Django QuerySet中提取目标UUID字符串ad5bb6b4-8035
提取Django QuerySet中的目标UUID字符串
最可靠的方法:直接访问模型字段
你看到的ad5bb6b4-8035是模型对象的主键(UUID类型),Django模型本身就提供了直接访问主键的方式,完全不需要从字符串里抠取:
# 替换成你实际的模型类和查询条件 course_qs = YourCourseModel.objects.filter(...) for course in course_qs: # pk是Django模型主键的通用别名,不管主键字段叫id还是自定义名称都能用 target_uuid = course.pk print(target_uuid) # 输出 ad5bb6b4-8035
如果你的模型主键是自定义字段(比如叫uuid),直接访问对应字段即可:
target_uuid = course.uuid
备选方案:正则表达式提取(不推荐)
如果特殊场景下必须从打印的字符串里提取,可以用正则匹配括号内的内容,但这种方法依赖模型__str__方法的输出格式,一旦格式修改就会失效:
import re course_qs = YourCourseModel.objects.filter(...) for course in course_qs: course_str = str(course) # 匹配括号中的内容 match_result = re.search(r'\((.*?)\)', course_str) if match_result: target_uuid = match_result.group(1) print(target_uuid)
内容的提问来源于stack exchange,提问作者Alexander
相关产品推荐
相关产品推荐

