用于在django数据库中存储图像的插入式自定义存储系统

时间:2016-02-23 00:40:14

标签: python django django-models

you tell me its a bad idea之前,我知道一个坏主意。我不是在问这个好主意,我问的是怎么做。

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

有一个python package that does this,但它需要更改原始模型,这是我无法做到的。它不在Google App Engine中托管,因此a custom solution for that doesn't work

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

这可能吗?

1 个答案:

答案 0 :(得分: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中描述的方法。如果它不是一个插件,它仍然可以作为实现数据库存储的类需求的起点。