У меня есть объект, называемый Author. Ниже класс NDB:AttributeError на объекте объекта облачного хранилища google
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)
при попытке доступа к полю автора био~d я получаю 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'
ЗАКРЫТО:
Я имел класс с именем автора в другом модуле. Этот класс использовался NDB каким-то образом для создания объекта-автора и вызывал такое поведение.
Просим вас предоставить [mcve]. Я не могу воспроизвести эту проблему с примером кода, который вы предоставили. – snakecharmerb
Привет, я добавил дополнительную информацию. Я могу добавить окружающий код, но он не связан с ошибкой. –
Вы можете получить эту ошибку, только если «автор» - это класс, а не экземпляр, и это класс, который не имеет атрибута «bio». Поэтому кажется, что вы переписываете 'author' где-то в своем коде. – snakecharmerb