Как получить 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)))