2012-08-28 6 views
3

ImageField 유형의 필드가있는 ModelA 모델이 있습니다. 이제 모든 이미지의 URL을 한 번에 가져오고 싶습니다.django에서 ImageField의 URL을 쿼리

는 내가 ModelA.objects.all() 값을() 할 때, 나는 뭔가 싶어

:.

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

오전 : 이제

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

, 그것은 같은 것을 제공 나는 무엇인가 놓친다?

어떻게해야합니까?

답변

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

settings.py 파일의 MEDIA_URL은 가변적이어서 처음부터 추가 할 수 없습니다.

각 개체를 반복하고 MEDIA_URL 값을 직접 추가하십시오.

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

당신은 두 개의 끝낼 싶지 않다 .... 슬래시와 함께 좀 더주의를 기울여 // ... 당신이 당신의 MEDIA_URL 여부의 끝에 하나가 있는지 여부에 따라 달라집니다.

관련 문제