django模型中映像的访问名

django模型中映像的访问名,django,python-3.x,python-imaging-library,Django,Python 3.x,Python Imaging Library,我想从数据库向django中的图像添加水印,为此,我必须以字符串格式访问图像名称 目前我正在使用这种技术 original\u pic=Photo.objects.values('original\u pic')) image=image.open(原始图片值()).convert('RGBA') 但是我的“original_pic”是字典类型的,它返回QuerySet中的数据 我想检索纯字符串格式的数据您可以使用: 注意flat=True参数。从文档: 如果只传入单个字段,还可以传入展开参

我想从数据库向django中的图像添加水印,为此,我必须以字符串格式访问图像名称 目前我正在使用这种技术

original\u pic=Photo.objects.values('original\u pic'))
image=image.open(原始图片值()).convert('RGBA')

但是我的“original_pic”是字典类型的,它返回QuerySet中的数据


我想检索纯字符串格式的数据

您可以使用:

注意
flat=True
参数。从文档:

如果只传入单个字段,还可以传入展开参数。如果为True,则意味着返回的结果是单个值,而不是一个元组


对于我来说,你所说的纯字符串格式不是100%清楚的。但是,如果您想拥有照片模型的字符串列表以及
FileField/ImageField
的文件路径,您可以执行以下操作:

[photo.original_pic.path for photo in Photo.objects.all()]

我猜想,您正在尝试打开一个单个图像。为此,您必须使用方法过滤
Photo
queryset,并使用
original\u pic=Photo.objects.filter(id=Photo\u id).values\u list('original\u pic',flat=True)[0]

image=image.open(原始图片)。convert('RGBA')

这只检索特定id的数据。如果要获取完整列的数据,该怎么办。i、 如有,请使用@neverwanner的答案
[photo.original_pic.path for photo in Photo.objects.all()]
original_pic = Photo.objects.filter(id=photo_id).values_list('original_pic', flat=True)[0]
image = Image.open(original_pic).convert('RGBA')