Django получить URL поля ImageField
У меня есть модель с ImageField
:
class Category(models.Model):
name = models.CharField(max_length=50, null=True, blank=True)
icon = models.ImageField(upload_to='images/', blank=True, null=True)
В settings.py
инициализированы 2 переменные:
MEDIA_ULR = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'skyeng/media')
в методе views.py
get:
def get(self, request):
query_set = Category.objects.all()
items_data = [{
'id': item.id,
'name': item.name,
'icon': item.icon.url} for item in query_set]
return JsonResponse(items_data, safe=False)
В ответ должен прийти ответ, как в примере:
[
{
"id": 1,
"name": "Category1",
"icon": "http://icon/url"
}
]
Так как мне нужно изменить мой код, чтобы icon.url
в методе get было так, как в примере ответа?
Попробуйте это:
request.build_absolute_uri(item.icon.url)