Как получить url изображения непосредственно в django queryset

У меня есть поле файла, в котором присутствуют изображения,

class MyModel(models.Model):
    display_picture = models.FileField(blank=True, null=True) # #In Use

это поле используется, поэтому я не могу вносить изменения в модель. Теперь эта модель связана с другой моделью PriceList. Ранее я делал два db-запроса с одним к MyModel и другим к PriceList. Но сейчас, поскольку они связаны, я хочу сделать это в одном запросе.

Итак, мой запрос выглядит примерно так (Я обращаюсь к MyModel через PriceList, поэтому я делаю запрос к PriceList, поскольку они связаны через поле inf)

all_info_with_price_list.values('inf__display_picture', # I can do this  
                                'inf__display_picture__url' # but not this
)

Как я могу получить url в самом запросе? Просто делая inf__display_picture я получаю полное имя файла.

URL - это свойство, а не значение в базе данных (код FileField), поэтому вы не можете получить его из values(). Вам придется получить значение URL отдельно. Например:

file_url_tuple_list = list(map(lambda x:(x.info.display_picture.id,
                                         x.info.display_picture.url),
                               list(all_info_with_price_list)))
Вернуться на верх