django 中每个应用程序的单独媒体设置

Posted

技术标签:

【中文标题】django 中每个应用程序的单独媒体设置【英文标题】:Separate media settings for each app in django 【发布时间】:2020-07-09 21:51:24 【问题描述】:

我正在构建一个基于 django 的类似博客的网站,它目前有一个应用程序。它包含一个媒体文件夹,其中包含用户上传的图像。但是,MEDIA_URL 和 MEDIA_ROOT 是在主 settings.py 文件中指定的。

但在未来,会有更多包含更多媒体的应用,因此我希望每个应用都有单独的 MEDIA_URL 和设置。

我尝试在 apps.py 文件中分别编写 MEDIA_ROOT 和 MEDIA_URL,但是从主 settings.py 文件中删除它会导致错误。

我也尝试过使用 FileSystemStorage,但即便如此,我也需要在 settings.py 文件中有一个 MEDIA_URLS。

如果您需要更多详细信息,请告诉我。 任何帮助表示赞赏,谢谢。

【问题讨论】:

【参考方案1】:

也许,您可以在 MEDIA_ROOT 中为不同的模型使用不同的文件夹。 例如:

class MyModel(models.Model):
    file = models.FileField(upload_to='my_model')

当您通过 MyModel admin 上传新文件时,在 MEDIA 文件夹中将创建一个名为 my_model 的文件夹,并且上传的文件将在那里。

【讨论】:

感谢您的方法!这是专业网站使用的标准方法吗? 我不知道别人是怎么做的,但这是我的方法

以上是关于django 中每个应用程序的单独媒体设置的主要内容,如果未能解决你的问题,请参考以下文章

带有 React 前端的 Django 后端

Elastic Beanstalk Aws Django 静态和媒体文件

模板提供了错误的媒体目录路径,Django 找不到图像

每篇文章Django创建单独的评论部分

django中media媒体路径设置

有没有办法在 Django 中为内联管理表单设置单独的页面?