Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django direct_cloud_上载未提交任何文件。检查表单上的编码类型_Python_Django_Google Cloud Platform_Google Cloud Storage_Python 3.8 - Fatal编程技术网

Python Django direct_cloud_上载未提交任何文件。检查表单上的编码类型

Python 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(上传到

我正在尝试使用库将文件直接上传到谷歌云存储桶,而无需通过我的cloudrun(以绕过32Mb的请求限制)

不幸的是,我一直有这样的错误:没有提交任何文件。检查表单上的编码类型。当我尝试上载文件时,即使文件已成功上载到存储区,也要在管理字体上

很明显我遗漏了一些东西,以下是我的代码:

型号.py

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同样的错误很不幸:(