У меня есть организация по имени Автор. Ниже представлен класс ndb:
class Author(ndb.Model):
name = ndb.StringProperty()
website = ndb.StringProperty()
bio = ndb.StringProperty()
profile_image_url = ndb.StringProperty()
slug = ndb.ComputedProperty(lambda self: make_slug(self.name))
Я создаю такой объект-автор
author = Author(id=pk, **author_dict)
author.put()
При первом создании авторского объекта ошибки нет.
Я получаю такой объект автора
author = Author.get_by_id(pk)
когда я пытаюсь получить доступ к полю биографии автора, я получаю AttributeError
author.bio = bio_text
Ошибка возникает при доступе к полю в существующем объекте автора. Ошибка появляется не во всех полях.
Консоль показывает все столбцы. Столбец биографии присутствует в консоли хранилища данных для объекта "Автор".
Я удалил все авторские сущности и сделал новые записи. Тем не менее я получаю AttributeError.
У меня есть несколько объектов в хранилище данных, но я получаю эту ошибку только для объекта Author.
Заявление об ошибке:
File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/ext/ndb/model.py",
line 2990, in _set_attributes
prop = getattr(cls, name) # Raises AttributeError for unknown properties.
AttributeError: type object 'Author' has no attribute 'bio'
ЗАКРЫТО:
У меня был класс под названием Author в другом модуле. Этот класс каким-то образом использовался NDB для создания сущности автора и вызывал такое поведение.
bio
. Кажется, что вы перезаписываетеauthor
где-то в своем коде. - person snakecharmerb   schedule 29.04.2016type(author)
иauthor.__name__
непосредственно перед строкой, в которой произошел сбой, чтобы увидеть, чтоauthor
на самом деле. - person snakecharmerb   schedule 29.04.2016