0

Tornado ハンドラを使用して MotorEngine インスタンスを保存できません。以下は、簡潔にするために短縮したコードの抜粋です。

motorengineインポートをインスタンスに置き換えるとmongoengine、適切に保存されます。

# model
from motorengine.document import Document
from motorengine.fields import *

class Test(Document):
    nameTest = StringField(required=True)
    numberTest = DecimalField(required=True)
    boolTest = BooleanField(required=True)

# handler
class TestHandler(BaseHandler):

    @tornado.gen.coroutine
    def post(self, *args, **kwargs):
        response = self._service.save_test()
        print(response)
        self.write('')
        self.finish()

# save method
from models import Test

def save_test(self):
        yield Test.objects.create(nameTest="foobar", boolTest=False, numberTest=123)

コードに明らかなエラーはありますか? 非同期プログラミングは私の得意分野ではありません。

:編集:

ベンの答えによると、これは機能するコードです

# handler
@tornado.gen.coroutine
def post(self, *args, **kwargs):
    yield self._service.save_test()

# save method
@tornado.gen.coroutine
def save_test(self):
    yield Test.objects.create(nameTest="foobar", boolTest=False, numberTest=123)
4

1 に答える 1