【问题标题】:File Upload in Django modelFormDjango modelForm 中的文件上传
【发布时间】:2013-06-24 16:34:51
【问题描述】:

我正在尝试在 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'

这个错误是因为Developers have read-only access to the filesystem on App Engine.引起的

还有其他方法可以将文档上传到 google cloud 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})

如何将文档上传到谷歌云 sql ?

【问题讨论】:

  • 您可以在数据库中使用 BLOB 字段
  • @J.Ghyllebert 抱歉,django 中没有像 BLOB 这样的字段。
  • 看看here提供的答案
  • here
  • @J.Ghyllebert,我正在尝试,但没有成功。

标签: django google-app-engine file-upload python-2.7 django-forms


【解决方案1】:

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

有Django包:pyuploadcare

披露:我是 Uploadcare 开发人员之一,发布此消息并不是为了无耻地宣传该服务,而是因为它旨在解决此类案例。

【讨论】:

    猜你喜欢
    • 2013-11-06
    • 2011-04-14
    • 2015-08-15
    • 2016-03-02
    • 1970-01-01
    • 2018-05-09
    • 2014-11-08
    • 2015-03-16
    相关资源
    最近更新 更多