加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

Django modelForm中的文件上传

发布时间:2020-12-20 13:35:29 所属栏目:Python 来源:网络整理
导读:我正在尝试上传appengine- django中的文档. 使用纯django代码[使用 python manage.py runsever]成功上传文档. 但是当我试图用appengine项目运行django它会给我错误, [Errno 30] Read-only file system: u'/home/nishant/workspace1/problemdemo/uploaded_fil
我正在尝试上传appengine- django中的文档.
使用纯django代码[使用 python manage.py runsever]成功上传文档.
但是当我试图用appengine项目运行django它会给我错误,

[Errno 30] Read-only file system: u'/home/nishant/workspace1/problemdemo/uploaded_files/1372313114_43_nishant26062013.zip'

导致此错误的原因是开发人员对App Engine上的文件系统具有只读访问权限.

是否有另一种方法将文档上传到谷歌云sql?

这是我的代码,

models.py

from django.db import models
import time

# Create your models here.

def get_upload_file_name(instance,filename):
    return "uploaded_files/%s_%s" % (str(time.time()).replace('.','_'),filename)


class Candidate(models.Model):
    title=models.CharField(max_length=20)
    resume=models.FileField(upload_to=get_upload_file_name)

    def __unicode__(self):
        return self.title

forms.py

from django import forms
from actualproblem.models import Candidate

class TestForm(forms.ModelForm):

    class Meta:

        model=Candidate

        fields=('title','resume',)

views.py

# Create your views here.
from django.shortcuts import render
from actualproblem.forms import TestForm

def sampletest(request):


    if request.method=='POST':        
        form = TestForm(request.POST,request.FILES)
        if form.is_valid():
            form.save()

    else:
        form=TestForm()


    return render(request,'profile.html',{'form':form})

如何将documetns上传到google cloud sql?

解决方法

您可以使用 Uploadcare来解决这个难题,它可以在您对主机文件系统(GAE,heroku,共享托管或诸如此类的东西)几乎没有控制权的情况下提供帮助.上传的文件将存储在Uploadcare中,您将在数据库中存储文件UUID或URL.

有Django包:pyuploadcare

披露:我是Uploadcare开发人员之一,并且发布此信息不是为了无耻地推广服务,而是因为它是为了解决这样的案例而构建的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读