3

我有一个ModelA带有 ImageField 类型字段的模型。现在,我想一口气获取所有图像的网址。

所以,当我做 ModelA.objects.all().values() 时,我想要得到类似的东西:

[{"id":1, "image_field": "/media/upload_folder/xyz.jpg"}, {...}]

现在,它给出了类似的东西:

[{"id":1, "image_field": "upload_folder/xyz.jpg"}, {...}]

我错过了什么吗?

我能做些什么?

4

2 回答 2

6

MEDIA_URL 可以更改,因此 Django 不会将其存储在数据库中。您可以自己添加:

from django.conf import settings

values = ModelA.objects.all().values()
for value in values:
    value['image_field'] = settings.MEDIA_URL + value['image_field']
于 2012-08-28T15:28:18.483 回答
1

您的 settings.py 文件中的 MEDIA_URL 是可变的,因此它无法在开头为您添加它。

循环遍历每个对象并自己添加 MEDIA_URL 值。

for value in values:
    newURL = settings.MEDIA_URL
    newURL += value['image_field']
    value['image_field'] = newURL

对斜线要格外小心....您不想最终将两个放在一起// ...这取决于您的 MEDIA_URL 末尾是否有一个。

于 2012-08-28T15:33:31.627 回答