File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -481,13 +481,22 @@ def clear(self):
481481 def _dump_save (self ):
482482 return {k :v .dump () for k ,v in iteritems (self ._changes )}
483483
484- def fetch (self ):
484+ def fetch (self , select = None , include = None ):
485485 """
486486 从服务器获取当前对象所有的值,如果与本地值不同,将会覆盖本地的值。
487487
488488 :return: 当前对象
489489 """
490- response = client .get ('/classes/{0}/{1}' .format (self ._class_name , self .id ), {})
490+ data = {}
491+ if select :
492+ if not isinstance (select , (list , tuple )):
493+ raise TypeError ('select parameter must be a list or a tuple' )
494+ data ['keys' ] = ',' .join (select )
495+ if include :
496+ if not isinstance (include , (list , tuple )):
497+ raise TypeError ('include parameter must be a list or a tuple' )
498+ data ['include' ] = ',' .join (include )
499+ response = client .get ('/classes/{0}/{1}' .format (self ._class_name , self .id ), data )
491500 self ._update_data (response .json ())
492501
493502 def is_new (self ):
Original file line number Diff line number Diff line change @@ -206,8 +206,11 @@ def get(self, object_id):
206206 :return: 查询结果
207207 :rtype: Object
208208 """
209- self .equal_to ('objectId' , object_id )
210- return self .first ()
209+ if not object_id :
210+ raise LeanCloudError (code = 101 , error = 'Object not found.' )
211+ obj = self ._query_class .create_without_data (object_id )
212+ obj .fetch (select = self ._select , include = self ._include )
213+ return obj
211214
212215 def find (self ):
213216 """
Original file line number Diff line number Diff line change @@ -212,12 +212,10 @@ def test_fetch(): # type: () -> None
212212 album .set ('parent' , band )
213213 album .save ()
214214
215- query = leancloud .Query (Album )
216- album_1 = query .get (album .id )
217- assert album_1 .get ('parent' ).get ('name' ) is None
218-
219- album_1 .get ('parent' ).fetch ()
215+ album_1 = Album .create_without_data (album .id )
216+ album_1 .fetch (include = ['parent' ], select = ['name' , 'parent' ])
220217 assert album_1 .get ('parent' ).get ('name' ) == 'Nightwish'
218+ assert not album_1 .has ('title' )
221219
222220 album .destroy ()
223221 band .destroy ()
You can’t perform that action at this time.
0 commit comments