По умолчанию PyAMF не будет кодировать поля ReferenceProperty, если они не были специально загружены методом сервиса. Это сделано специально, поэтому вам не нужно кодировать больше, чем нужно.
PyAMF ищет специальный атрибут класса __amf__
, который он использует для настройки процесса кодирования и декодирования для экземпляров этого типа. Более подробную информацию можно найти в документах .
Итак, чтобы принудительно закодировать все ответы на все вопросы, которые вы должны сделать:
class Question(db.Model):
class __amf__:
static = ('answers',)
questionText = db.StringProperty(multiline=False)
class Answer(db.Model):
answertText = db.StringProperty(multiline=False)
question = db.ReferenceProperty(Question, collection_name='answers')
Установка статического атрибута гарантирует, что каждый экземпляр Question
будет иметь установленный атрибут answers
(через getattr
), который, в свою очередь, будет обращаться к требуемому поиску хранилища данных.
Важно, чтобы этот параметр не распространялся на приложение, поэтому любой вопрос будет иметь атрибут ответов, как он появляется в экземпляре.