在Djang中自定义默认文件存储

2024-09-26 18:02:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用自定义文件存储(https://bitbucket.org/david/django-storages/wiki/S3Storage). 我按照指示把这个放在我的设置.py在

DEFAULT_FILE_STORAGE='storages.backends.s3boto.S3BotoStorage'

当我要导入默认存储时,它不是S3BotoStorage类型。我必须调用\u setup()。但是当我这样做时,我的模型的字段仍然是DefaultStorage类型

^{pr2}$

我的模特场怎么会是S3BotoStorage类型的?在


Tags: 文件djangopyhttpsorgdefault类型bitbucket
1条回答
网友
1楼 · 发布于 2024-09-26 18:02:05

根据我对django storages的理解,storage类将始终是DefaultStorage(除非在模型中显式设置)。应该看的是_包装的类。 你试过打印“p。原始存储.\u包装?在

在我这边,我得到的结果和你一样,但是如果我打印p。原始存储.u包装,我得到我的自定义存储类(在我的情况下)。在

如果要确保将正确的存储应用于字段,也可以直接在模型中设置存储。 例如:

from l3i.shortcuts.storage import UniqueFileStorage
class TestModel(models.Model):
    file = models.FileField(upload_to='file', storage=UniqueFileStorage())

在这种情况下,您可以执行p.file.storage,您将得到您的自定义类,而不是DefaultStorage包装器。在

相关问题 更多 >

    热门问题