在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
设置,并将ImageField
和FileField
属性中的所有图像和文件存储到数据库中。
这可能吗?
答案 0 :(得分:1)
您需要使用自定义文件存储类并将其分配给DEFAULT_FILE_STORAGE
,以覆盖内置的ImageField
和FileField
行为,如文档中所述:
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中描述的方法。如果它不是一个插件,它仍然可以作为实现数据库存储的类需求的起点。