我有一个模型ModelA
,其字段类型为ImageField。现在,我希望一次性获取所有图像的网址。
所以,当我做ModelA.objects.all()。values()时,我希望得到类似的内容:
[{"id":1, "image_field": "/media/upload_folder/xyz.jpg"}, {...}]
现在,它提供了类似的内容:
[{"id":1, "image_field": "upload_folder/xyz.jpg"}, {...}]
我错过了什么吗?
我该怎么办?
答案 0 :(得分:3)
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']
答案 1 :(得分: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的末尾有一个。