【问题标题】:Url of ImageField in django querydjango查询中ImageField的Url
【发布时间】:2012-08-28 15:26:10
【问题描述】:

我有一个模型ModelA,其字段类型为 ImageField。现在,我想一次性获取所有图片的 url。

所以,当我执行 ModelA.objects.all().values() 时,我想得到类似的东西:

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

现在,它给出了类似的内容:

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

我错过了什么吗?

我能做什么?

【问题讨论】:

    标签: django django-queryset django-models


    【解决方案1】:

    MEDIA_URL 可以更改,因此 Django 不会将其存储在数据库中。您可以自己添加:

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

    【讨论】:

    • 这给了我一些想法谢谢
    【解决方案2】:

    你的 settings.py 文件中的 MEDIA_URL 是可变的,所以它不能在开头为你添加它。

    循环遍历每个对象并自己添加 MEDIA_URL 值。

    for value in values:
        newURL = settings.MEDIA_URL
        newURL += value['image_field']
        value['image_field'] = newURL
    

    对斜线要格外小心...。您不希望两个一起结束 // ...这取决于您的 MEDIA_URL 末尾是否有一个。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-01
      • 2017-07-10
      • 2018-10-16
      • 1970-01-01
      • 2013-03-23
      • 2013-06-07
      • 2011-09-12
      • 2018-07-01
      相关资源
      最近更新 更多