简体   繁体   English

django 获取 ImageField 的 URL

[英]django get URL of ImageField

I have model with 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)

In settings.py initialized 2 variables:settings.py初始化了 2 个变量:

MEDIA_ULR = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'skyeng/media')

in views.py get method: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)

It should return the response as in the example:它应该返回响应,如示例中所示:

[
    {
        "id": 1,
        "name": "Category1",
        "icon": "http://icon/url"
    }
]

So how i need change my code that icon.url in get method was like in response example?那么我需要如何更改我的代码,get 方法中的icon.url就像响应示例中的一样?

尝试这个:

request.build_absolute_uri(item.icon.url)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM