1

Google App Engine で Python でメーリング アプリを作成しています。

「通常の」Web ページ (RequestHandler への投稿) で添付ファイルのアップロード (BlobstoreUploadHandler への投稿) を有効にしたいと考えています。

ユーザーが「通常の」フォームの一部を入力した場合、ユーザーが添付ファイルをアップロードした後にそれらの値を保持するにはどうすればよいですか (投稿を送信する前にすべてのフィールドを JavaScript でコピーする以外に)。

4

1 に答える 1

2

次の 2 つのクラスから派生する要求ハンドラーを作成できます。

class YourRequestHandler(BlobstoreUploadHandler, RequestHandler):
    pass

webapp2 の RequestHandlers でもこれを試してみましたが、うまくいきました。

PS: ユーザーがアプリケーションが期待するよりも多くのファイルをアップロードしたために孤立した blob が発生するのを防ぐために (ユーザーのブラウザーを制御できないため、これは簡単に発生する可能性があります)、次の行に沿って投稿ハンドラーを記述することをお勧めします。

def post(self):
    uploads = self.get_uploads()
    try:
        pass  # Put your application-specific code here.
        # As soon as you have stored a blob key in the database (using a transaction),
        # remove the corresponding upload from the uploads array.
    finally:
        keys = [upload.key() for upload in uploads]
        blobstore.delete_multi(keys)
于 2013-05-20T19:50:15.827 に答える