/ / Djangoと組み合わせたGAE blobstore APIを使用して写真をアップロードするには? - django、google-app-engine、blobstore

Djangoと組み合わせたGAE blobstore APIを使用して写真をアップロードするには? - django、google-app-engine、blobstore

私はアップロードするには最良の方法は知っているblobstore APIはblobstore APIを使用するため、実装しようとしましたが、私はview.pyファイルにblobstoreハンドラを埋め込むことができないという奇妙なエラーが発生しました。私はちょうどこれについて間違っていますか?

ETA:私 午前 他のすべてのビューにDjangoを使用し、テンプレートを使用して、Djangoを何の理由もなくインポートしていると誰も思っていないことを確認したかっただけです。

ここに私が現在入手しているエラーがあります:

AttributeError at /fileupload

"PhotoUploadHandler" object has no attribute "status_code"

Request Method:     GET
Request URL:    http://localhost:8080/fileupload
Django Version:     1.5.4
Exception Type:     AttributeError
Exception Value:

"PhotoUploadHandler" object has no attribute "status_code"

Exception Location:     C:Program Files (x86)Googlegoogle_appenginelibdjango-1.5djangomiddlewarecommon.py in process_response, line 106

私のviews.pyファイルのファイルアップロードセクションは次のとおりです:

from django import http
from django.core.context_processors import csrf
from django.views.decorators.csrf import csrf_protect
from django.template import RequestContext
from django.shortcuts import render_to_response
from models import Contact
from google.appengine.ext.webapp import blobstore_handlers
from google.appengine.ext import blobstore
from google.appengine.ext import webapp

class PhotoUploadHandler(blobstore_handlers.BlobstoreUploadHandler):
def post(self):
upload = self.get_uploads()[0]
photo = Photo(blob_key=upload.key())

db.put(photo)

self.response.out.write("<html><body><img class="imgpreview" src="/images//photo/%d"></body></html>" % photo.key().id())

def get(self):
upload_url = blobstore.create_upload_url("/photo")
self.response.out.write("<html><body>")
self.response.out.write("<form action="%s" method="POST" enctype="multipart/form-data">" % upload_url)
self.response.out.write("Upload File: <input type="file" name="file">")
self.response.out.write("<br><input type="submit" value="Upload"></form>")
self.response.out.write("</body></html>")

回答:

回答№1は2

djangoのツールキットを使用して、デフォルトでGCSのファイルをdjangoに保存するサポートを有効にする方が簡単かもしれません。

あなたのsettings.py:

APPENGINE_TOOLKIT = {
# ...,
"BUCKET_NAME": "your-bucket-name",
}
DEFAULT_FILE_STORAGE = "appengine_toolkit.storage.GoogleCloudStorage"

https://github.com/masci/django-appengine-toolkit

ファイルは自動的にGoogle Cloud Storageから自動的に透過的に保存/配信されます。


回答№2の場合は0

あなたが必要です

    from models import Photo
from < whatever db > import db

...

photo.put()