3

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

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

将错误传回的最佳方法是什么?获取变量?我尝试使用模型来保存表单错误并根据表单错误模型实例进行重定向,但这很麻烦。有任何想法吗?

4

1 回答 1

0

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

所以这里又是步骤。

  1. 创建表单视图
  2. 从第一个视图检查具有相同形式的 POST 变量
  3. 如果表单有效,则将其与 BlobInfo.key 一起保存,否则将错误保存到寿命较短的 memcache 并使用 url 中的 memcache 键重定向到第一个视图
  4. 从 memcache 中检索表单错误并将它们添加到新的表单实例中
  5. 重新提交表格并修复错误并保存
于 2011-01-23T18:52:54.370 回答