Search code examples
djangodjango-querysetdjango-models

Url of ImageField in django query


I have a model ModelA with a field of type ImageField. Now, I want to get all the images' urls in one go.

So, when I do ModelA.objects.all().values(), I want to get something like:

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

Now, it gives something like:

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

Am I missing something?

What can I do?


Solution

  • MEDIA_URL can change, so Django doesn't store it in the database. You can prepend it yourself:

    from django.conf import settings
    
    values = ModelA.objects.all().values()
    for value in values:
        value['image_field'] = settings.MEDIA_URL + value['image_field']