django - 使用Django的ImageField,如何将文件存储在STATIC_ROOT中?

标签 django

使用 Django 的 ImageField(),我如何将图像文件存储在 STATIC_ROOT 而不是 MEDIA_ROOT 中?

我意识到这对于通过管理员上传的图像来说是一个坏主意,但是这些图像与 git 中的其余代码一起存储,并在使用导入所有内容的脚本设置站点时附加到对象对象的数据。此后不会添加/编辑/删除图像。

最佳答案

您可以导入 FileSystemStorage 并指定自定义上传路径,并将 FileSystemStorage 对象作为 ImageField() 中的参数传递

from django.core.files.storage import FileSystemStorage
from django.conf.settings import STATIC_ROOT


upload_storage = FileSystemStorage(location=STATIC_ROOT, base_url='/uploads')


class ABCModel(models.Model):
    ...
    image = models.ImageField(upload_to='/your_image_name', storage=upload_storage)

引用文献:

关于django - 使用Django的ImageField,如何将文件存储在STATIC_ROOT中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40893663/

相关文章:

django - 如何将 'collapse' 添加到 Django StackedInline

Django Rest 框架、CSRF 和 Vue.js

django - FATAL : too many connections for role: Heroku/django, 仅在使用 ASGI 时

python - Django 消息框架未在模板中显示消息

mysql - 减少从 django 模板发起的数据库查询的数量

Django 的选择。如何设置默认选项?

django - 稳定的Django-Haystack + elasticsearch设置

python - Django - 强制执行 ManyToManyField 唯一项

python - 如果表单字段与 Python 关键字同名,如何在 Django 中声明表单字段?

ajax - 带 Ajax 的 Django 表单向导