【问题标题】:Using request.FILES in GAE ModelForm在 GAE ModelForm 中使用 request.FILES
【发布时间】:2011-09-17 15:00:07
【问题描述】:

我有一个使用 djangoforms.ModelForm 的 django 表单。我拥有的必填字段之一是 FileField。我一直在试图弄清楚如何将上传的文件传递给表单。

我一直在尝试使用类似的东西:

def post(self):
    form = StudentForm(data=self.request.POST, files=self.request.FILES)

但是,我收到以下错误:

Traceback (most recent call last):
  File "/<appengine_dir>/google_appengine/google/appengine/ext/webapp/_webapp25.py", line 703, in __call__
    handler.post(*groups)
  File "/<project_dir>/app/handlers/students.py", line 22, in post
    form = StudentForm(data=self.request.POST, files=self.request.FILES)
  File "/<appengine_dir>/google_appengine/lib/webob/webob/__init__.py", line 500, in __getattr__
    raise AttributeError(attr)
AttributeError: FILES

我已经特别指定了 django 1.2,并且在我的表单中设置了 enctype="multipart/form-data"。我还有什么遗漏的吗?

我能找到的最接近的问题是Uploading files to App Engine using webapp and Django forms

就我而言,我事先知道字段名称,并且可以使用与发布的类似方法。但是,我无法弄清楚或使它起作用。

感谢您的帮助!谢谢!

【问题讨论】:

    标签: python google-app-engine


    【解决方案1】:

    如果我们调整您提到的另一个问题的答案,那将如下所示(未经测试):

    from django.core.files.uploadedfile import SimpleUploadedFile
    
    upload = self.request.params['field_name']
    django_files_dict = {'field_name': SimpleUploadedFile(upload.filename,
                                                          upload.file.read())}
    form = StudentForm(data=self.request.POST, files=django_files_dict)
    

    有效吗?如果不是,您会收到什么错误消息?

    【讨论】:

    • 感谢您的帮助!我以前尝试过这样的事情。这次我收到一条不同的错误消息:pastebin.com/BF4gK1e8
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-20
    • 2017-04-14
    • 2016-12-28
    • 2020-06-20
    • 2012-11-10
    • 2012-09-09
    • 1970-01-01
    相关资源
    最近更新 更多