python - DJANGO - [Errno 30] 只读文件系统:'/media'
问题描述
我收到有关 Django 上媒体目录的错误。
表格.py
from django.forms import ModelForm
from .models import Mots
from django import forms
class CreeMot(ModelForm):
mot = forms.CharField(max_length=50)
level = forms.IntegerField(max_value=10)
image = forms.FileField()
class Meta:
model = Mots
fields = ["mot", "level", "image"]
视图.py
def cree_mot(request):
if request.method == "POST":
form = CreeMot(request.POST, request.FILES)
if form.is_valid():
form.save()
return HttpResponseRedirect('/success/url/')
else:
form = CreeMot()
return render(request, "cp/cree_mot.html", {'form': form})
设置.py
STATIC_URL = '/static/'
MEDIA_URL = '/media/'
# Add these new lines
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static'),
)
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
MEDIA_ROOT = os.path.join(BASE_DIR, 'staticfiles', 'media_root')
提交表单时,我收到此错误:
[Errno 30] Read-only file system: '/media'
其实我的/media/
目录是在同一级别/static/
:
cp
/views.py
/forms.py
main_app
/settings.py
/...
media
static
manage.py
我把我/media/
的 777 chmod。
解决方案
您应该删除并只留下基础人员来了解您的应用程序中发生了什么。首先,在您的情况下,删除
MEDIA_ROOT = os.path.join(BASE_DIR, 'staticfiles', 'media_root')
并留下通往媒体之路的路径,例如:
MEDIA_ROOT = 'path/to/media'
希望对你有帮助
推荐阅读
- elixir - Elixir Mix 版本 - 如何将额外文件复制到 Phoenix 应用程序的压缩包中?
- php - 如何在laravel中foreach第二张表后使用联合
- reactjs - 如何在 React Modal 中应用断线?
- python - 从 Google Cloud Storage 加载保存的 CatBoost 模型 (.cbm)
- python - 如何在同一行中将进度条写入 Python 中的文件?
- substrate - 构建 PoE 去中心化应用程序基板教程错误:无法编译 `sp-arithmetic`
- android - 如何使用在 Playstore 中发布的相同包名创建新的 Flutter 应用程序?
- reactjs - 如何在地图中使用三元运算符
- typescript - 输入标记的苗条打字稿
- c - 使用 realloc 分配一个 INT_MAX-1 元素数组