При попытке загрузить изображение в проект движка приложения Google с помощью blobstore выдается следующая ошибка:
ERROR 2018-10-29 11:18:21,519 user.py:476] ERROR is 'PicUploadHandler'
object has no attribute '_BlobstoreUploadHandler__uploads'
ERROR 2018-10-29 11:18:21,519 user.py:477] EXC is 'PicUploadHandler'
object has no attribute '_BlobstoreUploadHandler__uploads'
Traceback (most recent call last):
File "C:\Users\...\PycharmProjects\...\user.py", line 460, in post
upload_files = self.get_uploads()[0] #: 'file' is file upload field in
the form
File "C:\Program Files(x86)\Google\google_appengine\google\appengine\ext\webapp\blobstore_handlers.py", line 380, in get_uploads
if self.__uploads is None:
AttributeError: 'PicUploadHandler' object has no attribute '_BlobstoreUploadHandler__uploads'
Мой код выглядит следующим образом:
class PicUploadHandler(BaseHandler, blobstore_handlers.BlobstoreUploadHandler):
"""handler to upload a profile photo to the blobstore"""
def get(self):
try:
user = self.user_obj()
if user:
upload_url = blobstore.create_upload_url('/u/profile-pic-upload') #: create the upload url
template_values = {
'user': user,
'upload_url': upload_url,
}
#: RENDER TEMPLATE
self.render_template(ROUTE, '/profile-pic-upload.html', template_values)
else:
self.redirect('/')
except Exception, e:
logging.error("ERROR is %s" % e)
logging.exception("EXC is %s" % e)
self.redirect("/oops") # unexpected error
def post(self):
try:
user = self.user_obj()
if user:
self.response.headers['Content-Type'] = 'image/svg+xml'
if user.pic_key:
blobstore.delete(user.pic_key) #: retrieve the old home photo and delete it
upload_files = self.get_uploads()[0] #: 'file' is file upload field in the form
#: update the datastore values for the user's home photo
user.pic_url = get_serving_url(upload_files.key())
#: the blobstore key for later retrieval
user.pic_key = upload_files.key()
user.put()
#: redirect to the profile page
self.redirect('/u/edit-profile/')
except Exception, e:
logging.error("ERROR is %s" % e)
logging.exception("EXC is %s" % e)
self.redirect("/oops") # unexpected error
Я скопировал и вставил этот код из более старого проекта, где он работает без ошибок.
Любая помощь будет высоко ценится, спасибо.
EDIT:
Будучи радостной Марией, я загрузил код, чтобы проверить журналы из живого экземпляра. Кажется, проблема в dev server / datastore, так как код запускается, когда приложение находится в сети. У кого-нибудь есть идея, почему это так?