私はアップロードするには最良の方法は知っている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は2djangoのツールキットを使用して、デフォルトで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()