渲染时,Google App Engine中的get_serving_url在Production Caught InvalidBlobKeyError中失败

时间:2013-02-10 09:23:21

标签: python django google-app-engine blobstore

感谢您抽出宝贵时间阅读我的问题。

我已成功在表单中实现用户上传。我也成功地在我的devserver上显示上传的文件(图像)。

但是,我不能让它们在制作时显示出来。

我目前正在为图片使用以下过滤器:

@register.simple_tag
def media_file_url(file_obj):
    file_location = file_obj.name.split('/')[0]
    #gives just the key
    return get_serving_url(str(file_location))

并在模板中:

 <img class='visual' src='{% media_file_url promotion.image %}' 
    alt='image description' width='70' height='88' />

我在没有拆分file_location的情况下尝试了上述内容。

我在views.py中尝试了一个自定义url处理程序:

def images(request, resource):
    clean_key = urllib2.unquote(resource)
    return HttpResponseRedirect(get_serving_url(clean_key))

上述所有工作都在开发,但不是生产。

有人有任何建议吗?

感谢!!!

1 个答案:

答案 0 :(得分:0)

blob信息存储在模型的文件信息中。

我能够在我的过滤器中获取服务URL,如下所示:

from google.appengine.api import images

...

@register.simple_tag
def media_file_url(file_obj):
    try:
        return images.get_serving_url(file_obj.file.blobstore_info)
    except:
        return None