Publicar um ndb StructuredProperty _Message__decoded_fields

Meu problema:

Estou tentando preencher um modelo de armazenamento de dados no GAE que contém uma propriedade ndb.Structured () usando uma solicitação 'POST'.

Esta pergunta foi feita recentemente, mas não foi respondida (Como "POST" ndb.StructuredProperty?)

Eu tenho os seguintes dois modelos:

class Check(EndpointsModel):
    this = ndb.StringProperty()
    that = ndb.StringProperty()

class CheckMessage(EndpointsModel):
    check = ndb.StructuredProperty(Check)

Estou tentando postar esses dados:

{
    check:
    {
        "this":"test",
        "that":"test"
    }
}

com a seguinte solicitação de API:

@CheckMessage.method(name='check_insert',path='check/insert',http_method='POST')
    def check_insert(self,request):
        print(request)

Ao postar do cliente, recebo o seguinteerro:

AttributeError: 'Check' object has no attribute '_Message__decoded_fields'
O problema:

Da minha compreensão de alto nível do módulo endpoints-proto-datastore, parece que quando o json está sendo decodificado e salvo na mensagem recebida (utils.py linha 431), ele não está verificando propriedades estruturadas / localizadas e salvando suas chaves como bem, tudo bem até que o FromValue (ndb / model.py linha 115) verifique instâncias de propriedades estruturadas e tente converter recursivamente a propriedade estruturada da mensagem protorpc em uma entidade modelo (que precisa dos campos _Message__decoded_).

Sasxa (veja o link acima) encontrou uma solução alternativa bacana para esse problema usando um EndpointsAliasProperty convertido em uma classe de mensagem ProtoRPC para ignorar a conversão automática da propriedade estruturada em endpoints-proto-datastore na entidade estruturada em sua entidade modelo associada, mas essa solução alternativa teve alguns efeitos colaterais isso fez o que eu estava tentando fazer difícil.

A questão:

Alguém sabe comocorretamente preencha um modelo de armazenamento de dados contendo um StructuredProperty usando uma solicitação 'POST' e existem exemplos de trabalho disponíveis?

questionAnswers(0)

yourAnswerToTheQuestion