【发布时间】:2013-04-17 12:42:25
【问题描述】:
我正在使用 GAE Blobstore 为我的 Django 应用上传和提供图像。对于管理员用户,可以通过将图像包装在 Django 模型 Image 中并为此模型提供标准管理员功能来进行维护:添加、更新、删除。
为了执行实际上传,我修改了 Image 模型的 change_form.html 模板,并将 {{ form_url }} 替换为 {{ blobstore_url}}。通过覆盖render_change_form 的ImageAdmin 来设置{{ blobstore_url }}。
我注意到,通过调用create_upload_url("/admin/some/url"),我得到了 GAE Blobstore 上传工具的编码 url,函数的参数 ("/admin/some/url") 实际上是 GAE/Blobstore 重定向到的 url上传完成。
与问题无关,但我也注意到,在我的第一种方法中,我只是覆盖了 {{ form_url }} 的值,但这似乎不起作用,因为没有设置表单的操作;它要么被其他地方覆盖,要么被忽略。
虽然这可行,但主要缺点是这种方法需要我将“admin/some/url”实现为一个视图,我可以在其中处理所需的模型图像的添加或更改,这实际上是代码的重复默认管理员已经支持这些功能。
所以我的问题是传递给create_upload_url() 的正确 URL 是什么,以便在上传完成后运行图像模型的验证和数据库更新的标准管理功能?
编辑
或者,在默认管理操作(例如插入或更新)完成后执行上传可能是一个更好的设计......
【问题讨论】:
标签: google-app-engine django-admin blobstore