【问题标题】:Drop-in custom storage system to store image in a django database将图像存储在 django 数据库中的嵌入式自定义存储系统
【发布时间】:2016-02-23 00:40:14
【问题描述】:

you tell me its a bad idea 之前,我知道这是个坏主意。我不是在问它是否是一个好主意,我是在问如何去做。


我需要将来自可重用 django 应用程序的 ImageField 中的图像存储到数据库中,不一定是默认数据库,只是 a 数据库。

有一个python package that does this,但它需要更改原始模型,我不能这样做。它没有托管在 Google App Engine 中,所以a custom solution for that doesn't work

最终,我需要能够更改 Django 1.9 应用程序的 DEFAULT_FILE_STORAGE 设置,并将来自 ImageFieldFileField 属性的所有图像和文件存储到数据库中。

这可能吗?

【问题讨论】:

    标签: python django django-models


    【解决方案1】:

    您需要使用自定义文件存储类并将其分配给 DEFAULT_FILE_STORAGE 以覆盖内置的 ImageFieldFileField 行为,如文档中所述: https://docs.djangoproject.com/en/1.9/howto/custom-file-storage/

    除了你提到的那个项目之外,还有另一个项目叫做https://github.com/bfirsh/django-database-files,用于同样的目的“django-database-files 是 Django 的存储系统,用于将上传的文件存储在数据库中。”,它提供了一个像您需要的那样的自定义类:

    https://github.com/bfirsh/django-database-files/blob/master/database_files/storage.py

    此自定义文件存储类针对 Django 1.1,因此它可能有些过时,但经过快速扫描,它似乎实现了更新的文档 1 中描述的方法。如果它不是一个插件,作为实现数据库存储类需求的起点,它仍然应该是有帮助的。

    【讨论】:

    • 花了大约 15 分钟的黑客时间,但这个答案仍然有效!谢谢。
    猜你喜欢
    • 2012-06-26
    • 1970-01-01
    • 2014-05-04
    • 2011-04-15
    • 1970-01-01
    • 2011-01-04
    • 1970-01-01
    • 2022-11-21
    • 1970-01-01
    相关资源
    最近更新 更多