2016-07-27 63 views
5

我想实现一个服务,检查登录用户是否在数据存储上,如果是,则返回True,如果不返回False。 这里是我使用的代码:谷歌应用程序引擎:对象没有属性ToMessage

import endpoints 

from google.appengine.ext import ndb 
from protorpc import remote 
from protorpc import messages 

from endpoints_proto_datastore.ndb import EndpointsModel 
from google.appengine.api import users 

class AuthRes(messages.Message): 
    message = messages.StringField(1) 

class UserModel(EndpointsModel): 
    user = ndb.UserProperty() 

@endpoints.api(name='myapi', version='v1', description='My Little API') 
class MyApi(remote.Service): 

    @UserModel.method(path='myuser', http_method='GET', name='myuser.check') 
    def UserCheck(self, cls): 
     user = users.get_current_user() 
     if user: 
      myuser = cls.query().filter(cls.user.user_id() == user.user_id()).get() 
      if not myuser: 
        return AuthRes(message="False") 
      else: 
        return AuthRes(message="True") 
     else: 
      return AuthRes(message="False") 


application = endpoints.api_server([MyApi], restricted=False) 

我总是'AuthRes' object has no attribute 'ToMessage'

+0

什么线是产生错误?你可以发布堆栈跟踪吗? – tx802

+0

返回语句是返回错误 –

+0

@TarikMokafih你能发布完整的追溯? –

回答

0

我认为不是这样的:

@UserModel.method(path='myuser', http_method='GET', name='myuser.check') 

你想这样的:

from protorpc import message_types # add at the top 

@endpoints.method(message_types.VoidMessage, AuthRes, path='myuser', http_method='GET', name='myuser.check')