GAE Blobstore を使用して、Django アプリの画像をアップロードおよび提供しています。管理者ユーザーは、イメージを Django モデルにラップし、Image
このモデルの標準的な管理機能 (追加、更新、削除) を提供することで、メンテナンスを利用できます。
実際のアップロードを実行するchange_form.html
ために、Image モデルのテンプレートを変更{{ form_url }}
し、 {{ blobstore_url}}
. のを{{ blobstore_url }}
オーバーライドすることによって設定されます。render_change_form
ImageAdmin
を呼び出すとcreate_upload_url("/admin/some/url")
、GAE Blobstore のアップロード機能へのエンコードされた URL が取得され、関数の引数 ("/admin/some/url") は実際には、アップロードの完了時に GAE/Blobstore がリダイレクトする URL であることに気付きました。
質問とはあまり関係ありませんが、最初のアプローチで値を上書きしただけ{{ form_url }}
ですが、フォームのアクションが設定されていないため、機能していないようです。他の場所で上書きされるか、無視されます。
これは機能しますが、主な欠点は、このアプローチでは、モデル イメージの必要な追加または変更を処理できるビューとして「admin/some/url」を実装する必要があることです。これは、デフォルトの管理者としてのコードの重複です。これらの機能をサポートしています。
私の質問はcreate_upload_url()
、アップロードの完了後に Image モデルの検証とデータベース更新の標準的な管理機能を実行するために渡す正しい URL は何でしょうか?
編集
または、デフォルトの管理操作 (挿入や更新など) が完了した後にアップロードを実行する方が良いかもしれません...