Python Django direct_cloud_上载未提交任何文件。检查表单上的编码类型
我正在尝试使用库将文件直接上传到谷歌云存储桶,而无需通过我的cloudrun(以绕过32Mb的请求限制) 不幸的是,我一直有这样的错误:没有提交任何文件。检查表单上的编码类型。当我尝试上载文件时,即使文件已成功上载到存储区,也要在管理字体上 很明显我遗漏了一些东西,以下是我的代码: 型号.pyPython Django direct_cloud_上载未提交任何文件。检查表单上的编码类型,python,django,google-cloud-platform,google-cloud-storage,python-3.8,Python,Django,Google Cloud Platform,Google Cloud Storage,Python 3.8,我正在尝试使用库将文件直接上传到谷歌云存储桶,而无需通过我的cloudrun(以绕过32Mb的请求限制) 不幸的是,我一直有这样的错误:没有提交任何文件。检查表单上的编码类型。当我尝试上载文件时,即使文件已成功上载到存储区,也要在管理字体上 很明显我遗漏了一些东西,以下是我的代码: 型号.py class AudioFileModel(models.Model): title=models.CharField(最大长度=80) audio\u file=models.FileField(上传到
class AudioFileModel(models.Model):
title=models.CharField(最大长度=80)
audio\u file=models.FileField(上传到class='audio/')
类元:
排序=['title']
定义(自我):
返回f“{self.title}”
forms.py
from.models导入AudioFileModel
来自django导入表单
从google.cloud.storage导入客户端
导入直接云上传
导入操作系统
从direct_cloud_上载导入CloudFileWidget
从google.oauth2导入服务_帐户
凭据=服务\u帐户.credentials.from\u服务\u帐户\u文件(
'服务帐户密钥.json'
)
客户端=客户端(凭据=凭据)
gcs\u bucket=client.get\u bucket(os.environ.get(“GS\u bucket\u NAME”))
ddcu_bucket_identifier=直接云上传。注册gcs_bucket(gcs_bucket)
类UploadAudioFileForm(forms.ModelForm):
类元:
模型=音频文件模型
字段=('title','audio_file')
小部件={
“音频文件”:CloudFileWidget(
bucket\u identifier=ddcu\u bucket\u identifier,
path\u prefix=“audio\u file\u new/”,
)
}
}
url.py
from.views导入*
导入直接云上传
URL模式=[
路径(“admin/”,admin.site.url),
路径('upload\u audio\u file.html',AudioFileUploadView,name='AudioFileUploadView'),
路径('direct_cloud_upload/',包括(direct_cloud_upload.urlpatterns)),
]
视图.py
from.forms导入UploadAudioFileForm
从django.http导入HttpResponse
def AudioFileUploadView(请求):
如果request.method==“POST”:
表单=上传音频文件表单(request.POST、request.FILES)
如果form.is_有效():
form.save()
返回HttpResponse('文件已保存')
其他:
form=UploadAudioFileForm()
上下文={
“形式”:形式,
}
返回渲染(请求“upload\u audio\u file.html”,上下文)
我没有云运行错误,我认为这是一个前端错误
我将Python3.8.6与django 3.1.6一起使用 型号.py
class AudioFileModel(models.Model):
title=models.CharField(最大长度=80)
音频文件=models.CharField(最大长度=160)
类元:
排序=['title']
定义(自我):
返回f“{self.title}”
我认为您不需要为此编写视图
,因为direct\u cloud\u upload
库将负责上传文件。您只需在路径中添加我看到的direct\u cloud\u upload.urlpatterns
。您可以删除AudioFileUploadView的路径
,然后再试一次。我想它应该会起作用。@Ejaz同样的错误很不幸:(