2012-07-01 1 views
0

Я пытаюсь вернуть миниатюру из Blobstore. Для полного изображения, я обычно выписываюget_serving_url возвращает объект типа «Key» не имеет LEN()

<img src='img?img_id=%s'></img>" % greeting.key() 

(где приветствие в цикле получать выборку изображений из базы данных) с обработчиком ('/img', ImageHandler) и функции

class ImageHandler(webapp.RequestHandler): 
def get(self): 
    greeting = db.get(self.request.get("img_id")) 
    if greeting.picture: 
     self.response.headers['Content-Type'] = "image/png" 
     self.response.out.write(greeting.picture) 
    else: 
     self.error(404) 

Это прекрасно работает. Однако при использовании get_serving_url, вызывая

<img src='img?img_id=%s'></img>" % (images.get_serving_url(greeting.key(), 32)) 

Я получаю TypeError: object of type 'Key' has no len(). Я могу только предположить, что ключевое слово blob, которое я использовал, неверно, но, насколько я знаю, является ключом blob.

ответ

1

Возможно, вы хотите позвонить по телефону str() по ключевому объекту, прежде чем передавать его на адрес get_serving_url(). Скорее всего, он ожидает строчную форму ключа.

Причина, по которой работал в исходной версии, потому что с помощью оператора % с форматом %s спецификатора автоматически вызывает str() для вас, чтобы определить строку интерполировать в.

+0

Спасибо, что это было! – DMan

Смежные вопросы