2011-01-21 81 views
3

上传文件到blobstore的最佳工作流程是什么,同时将有关blob和其他字段的信息保存到模型记录中?什么是最好的Google App Engine blobstore工作流程?

例如,我应该将表单提交到blobstore上传url(blobstore.create_upload_url),清除表单,如果错误重定向,保存并重定向,如果不是?

传回错误的最佳方法是什么? GET变量?我尝试使用模型来保存表单错误和基于表单错误模型实例的重定向,但这很麻烦。有任何想法吗?

回答

0

我为此提出的解决方案并不是最漂亮的,但它完成了工作。在上传视图(在create_upload_url函数中指定的视图),我将post变量从第一页传递到相同的表单类。如果表单有效,我会将变量和BlobInfo.key一起保存到模型中。如果它不是一个有效的表单,我将这些错误保存在memcache中,并用错误变量重定向回第一页,这会触发视图从memcache中检索错误并将它们添加到表单实例中。

再次,这里的步骤。

  1. 从第一视图中创建表单视图
  2. 同形检查POST变量
  3. 如果表单与BlobInfo.key一起有效保存,如不及时抢救错误的小寿命到MEMCACHE并重定向到第一个视图在网址
  4. 的内存缓存键从内存缓存中检索的形式错误,并把它们添加到新的窗体实例
  5. 重新提交错误固定的形式和保存
+0

在高内存压力下,memcache似乎有时会驱赶事物,因此您可能希望将错误保存到数据存储区(并且有一个cron作业来清理旧数据库),或者简单地将所有错误(如果可能)编码到网址。 – Amir 2011-01-24 20:41:54

相关问题