私はアバターをユーザーのプロフィールページに投稿することを含む小さなサイドプロジェクトに取り組んでいますが、それは十分に簡単なようです。GAEWebサイトの「ImagesPythonAPIの使用」の指示に従っています。
ただし、彼らが提供するサンプルはDjangoでは機能しないようです。この辺りを検索すると、同様の問題のあるスレッドが見つかりましたが、解決策はGAEで新しいバージョンのDjangoを使用したことによるものだと言いました。私はこの回避策を回避し、ビルドインAPIで実行しようとしています。私はPythonとDjangoの両方に慣れていませんが、収集できることから、画像を変換してデータストアに送信する関数に画像が適切に投稿されていません。これが私のコードです:
def post(self):
contacts = Contact()
if users.get_current_user():
contacts.owner = users.get_current_user()
else:
self.redirect('/')
contacts.fname = self.request.get('fname')
contacts.lname = self.request.get('lname')
contacts.pnum = self.request.get('pnum')
img = self.request.FILES['file'].read()
img.resize(32,32)
contacts.avatar = db.Blob(images.resize(img,32,32))
contacts.put()
self.redirect('/')
アバターフィールドを除いて、他のすべてのフィールドは正しく追加されます。変更されたリクエスト文字列は、修正を含む前述のスレッドからのものです。アバターにアクセスしようとすると、これがちょっと奇妙になりますが、ページには、私が設定したデフォルトの画像ではなく、壊れた画像が表示されます。これにより、フィールドがnullまたは欠落していても、要求時に一意のキーを描画するための何かがそこにあると私は信じています。画像表示機能は次のとおりです。
class Image (webapp.RequestHandler):
def get(self):
contacts = db.get(self.request.get("img_id"))
if contacts.avatar:
image = contacts.avatar
self.response.headers['Content-Type'] = "image/png"
self.response.out.write(HttpResponseRedirect(contacts.avatar))
else:
self.response.out.wrute(HttpResponseRedirect("/static/image_not_found.gif"))
これも機能させるためにさまざまなバリエーションを試しました。最初は、手順のコードブロックを使用したことを信頼してください。
どんな助けでも大歓迎です。
前もって感謝します。