我在 Google App Engine 上使用 @wkornewald 的 django-nonrel 和 django-filetransfer。
我可以很好地上传文件,但前提是整个表单都有效。如果表单对任何字段的验证失败,它就会完全崩溃,而不是返回给用户来修复更改。
错误信息是:
INFO 2011-03-10 20:27:09,496 dev_appserver.py:535] Internal redirection to /admin/rr/member/add/
INFO 2011-03-10 20:27:09,662 dev_appserver_blobstore.py:328] Upload handler returned 200
ERROR 2011-03-10 20:27:09,662 dev_appserver_blobstore.py:341] Invalid upload handler response. Only 301, 302 and 303 statuses are permitted and it may not have a content body.
INFO 2011-03-10 20:27:09,680 dev_appserver.py:3317] "POST /_ah/upload/ag5kbXJvbGxpbnJlbGljc3IcCxIVX19CbG9iVXBsb2FkU2Vzc2lvbl9fGIkBDA HTTP/1.1" 500 -
我有一个看起来像这样的简单模型:
class Member(PhotoMixin, models.Model):
name = models.CharField(max_length=50)
name2 = models.CharField(max_length=50, blank=True)
member_since = models.DateField(blank=True, null=True)
full_size_image = models.FileField(verbose_name="Photo", upload_to='members/')
is_active = models.BooleanField(default=True)
有没有办法让我更优雅地处理这个问题?我觉得这可能是因为 django-filetransfers 希望您将表单发布到 blob 上传 url,而该 url 不知道如何处理失败。当且仅当其余部分有效时,是否应该有一个中间步骤来处理大部分表单并发布到上传 url?