@@ -401,25 +401,18 @@ <h1>leancloud.object_ 源代码</h1><div class="highlight"><pre>
401401 < span class ="p "> }</ span >
402402
403403 < span class ="k "> def</ span > < span class ="nf "> _merge_metadata</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> ,</ span > < span class ="n "> server_data</ span > < span class ="p "> ):</ span >
404- < span class ="k "> for</ span > < span class ="n "> key</ span > < span class ="ow "> in</ span > < span class ="p "> (</ span > < span class ="s2 "> "objectId"</ span > < span class ="p "> ,</ span > < span class ="s2 "> "createdAt"</ span > < span class ="p "> ,</ span > < span class ="s2 "> "updatedAt"</ span > < span class ="p "> ):</ span >
405- < span class ="k "> if</ span > < span class ="n "> server_data</ span > < span class ="o "> .</ span > < span class ="n "> get</ span > < span class ="p "> (</ span > < span class ="n "> key</ span > < span class ="p "> )</ span > < span class ="ow "> is</ span > < span class ="kc "> None</ span > < span class ="p "> :</ span >
406- < span class ="k "> continue</ span >
407- < span class ="k "> if</ span > < span class ="n "> key</ span > < span class ="o "> ==</ span > < span class ="s2 "> "objectId"</ span > < span class ="p "> :</ span >
408- < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> id</ span > < span class ="o "> =</ span > < span class ="n "> server_data</ span > < span class ="p "> [</ span > < span class ="n "> key</ span > < span class ="p "> ]</ span >
409- < span class ="k "> else</ span > < span class ="p "> :</ span >
410- < span class ="k "> if</ span > < span class ="nb "> isinstance</ span > < span class ="p "> (</ span > < span class ="n "> server_data</ span > < span class ="p "> [</ span > < span class ="n "> key</ span > < span class ="p "> ],</ span > < span class ="n "> six</ span > < span class ="o "> .</ span > < span class ="n "> string_types</ span > < span class ="p "> ):</ span >
411- < span class ="n "> dt</ span > < span class ="o "> =</ span > < span class ="n "> utils</ span > < span class ="o "> .</ span > < span class ="n "> decode</ span > < span class ="p "> (</ span > < span class ="n "> key</ span > < span class ="p "> ,</ span > < span class ="p "> {</ span > < span class ="s2 "> "__type"</ span > < span class ="p "> :</ span > < span class ="s2 "> "Date"</ span > < span class ="p "> ,</ span > < span class ="s2 "> "iso"</ span > < span class ="p "> :</ span > < span class ="n "> server_data</ span > < span class ="p "> [</ span > < span class ="n "> key</ span > < span class ="p "> ]})</ span >
412- < span class ="k "> elif</ span > < span class ="n "> server_data</ span > < span class ="p "> [</ span > < span class ="n "> key</ span > < span class ="p "> ][</ span > < span class ="s2 "> "__type"</ span > < span class ="p "> ]</ span > < span class ="o "> ==</ span > < span class ="s2 "> "Date"</ span > < span class ="p "> :</ span >
413- < span class ="n "> dt</ span > < span class ="o "> =</ span > < span class ="n "> utils</ span > < span class ="o "> .</ span > < span class ="n "> decode</ span > < span class ="p "> (</ span > < span class ="n "> key</ span > < span class ="p "> ,</ span > < span class ="n "> server_data</ span > < span class ="p "> [</ span > < span class ="n "> key</ span > < span class ="p "> ])</ span >
414- < span class ="k "> else</ span > < span class ="p "> :</ span >
415- < span class ="k "> raise</ span > < span class ="ne "> TypeError</ span > < span class ="p "> (</ span > < span class ="s2 "> "Invalid date type"</ span > < span class ="p "> )</ span >
416- < span class ="n "> server_data</ span > < span class ="p "> [</ span > < span class ="n "> key</ span > < span class ="p "> ]</ span > < span class ="o "> =</ span > < span class ="n "> dt</ span >
417- < span class ="k "> if</ span > < span class ="n "> key</ span > < span class ="o "> ==</ span > < span class ="s2 "> "createdAt"</ span > < span class ="p "> :</ span >
418- < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> created_at</ span > < span class ="o "> =</ span > < span class ="n "> dt</ span >
419- < span class ="k "> elif</ span > < span class ="n "> key</ span > < span class ="o "> ==</ span > < span class ="s2 "> "updatedAt"</ span > < span class ="p "> :</ span >
420- < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> updated_at</ span > < span class ="o "> =</ span > < span class ="n "> dt</ span >
421- < span class ="k "> else</ span > < span class ="p "> :</ span >
422- < span class ="k "> raise</ span > < span class ="ne "> TypeError</ span >
404+ < span class ="n "> object_id</ span > < span class ="o "> =</ span > < span class ="n "> server_data</ span > < span class ="o "> .</ span > < span class ="n "> get</ span > < span class ="p "> (</ span > < span class ="s2 "> "objectId"</ span > < span class ="p "> )</ span >
405+ < span class ="n "> _created_at</ span > < span class ="o "> =</ span > < span class ="n "> utils</ span > < span class ="o "> .</ span > < span class ="n "> decode_date_string</ span > < span class ="p "> (</ span > < span class ="n "> server_data</ span > < span class ="o "> .</ span > < span class ="n "> get</ span > < span class ="p "> (</ span > < span class ="s2 "> "createdAt"</ span > < span class ="p "> ))</ span >
406+ < span class ="n "> _updated_at</ span > < span class ="o "> =</ span > < span class ="n "> utils</ span > < span class ="o "> .</ span > < span class ="n "> decode_updated_at</ span > < span class ="p "> (</ span > < span class ="n "> server_data</ span > < span class ="o "> .</ span > < span class ="n "> get</ span > < span class ="p "> (</ span > < span class ="s2 "> "updatedAt"</ span > < span class ="p "> ),</ span > < span class ="n "> _created_at</ span > < span class ="p "> )</ span >
407+
408+ < span class ="k "> if</ span > < span class ="n "> object_id</ span > < span class ="ow "> is</ span > < span class ="ow "> not</ span > < span class ="kc "> None</ span > < span class ="p "> :</ span >
409+ < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> id</ span > < span class ="o "> =</ span > < span class ="n "> object_id</ span >
410+ < span class ="k "> if</ span > < span class ="n "> _created_at</ span > < span class ="ow "> is</ span > < span class ="ow "> not</ span > < span class ="kc "> None</ span > < span class ="p "> :</ span >
411+ < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> created_at</ span > < span class ="o "> =</ span > < span class ="n "> _created_at</ span >
412+ < span class ="k "> if</ span > < span class ="n "> _updated_at</ span > < span class ="ow "> is</ span > < span class ="ow "> not</ span > < span class ="kc "> None</ span > < span class ="p "> :</ span >
413+ < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> updated_at</ span > < span class ="o "> =</ span > < span class ="n "> _updated_at</ span >
414+
415+
423416
424417< div class ="viewcode-block " id ="Object.validate "> < a class ="viewcode-back " href ="../../index.html#leancloud.Object.validate "> [文档]</ a > < span class ="k "> def</ span > < span class ="nf "> validate</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> ,</ span > < span class ="n "> attrs</ span > < span class ="p "> ):</ span >
425418 < span class ="k "> if</ span > < span class ="s2 "> "ACL"</ span > < span class ="ow "> in</ span > < span class ="n "> attrs</ span > < span class ="ow "> and</ span > < span class ="ow "> not</ span > < span class ="nb "> isinstance</ span > < span class ="p "> (</ span > < span class ="n "> attrs</ span > < span class ="p "> [</ span > < span class ="s2 "> "ACL"</ span > < span class ="p "> ],</ span > < span class ="n "> leancloud</ span > < span class ="o "> .</ span > < span class ="n "> ACL</ span > < span class ="p "> ):</ span >
@@ -437,6 +430,23 @@ <h1>leancloud.object_ 源代码</h1><div class="highlight"><pre>
437430 < span class ="c1 "> # for backward compatibility</ span >
438431 < span class ="k "> if</ span > < span class ="p "> (</ span > < span class ="n "> deafult</ span > < span class ="ow "> is</ span > < span class ="ow "> not</ span > < span class ="kc "> None</ span > < span class ="p "> )</ span > < span class ="ow "> and</ span > < span class ="p "> (</ span > < span class ="n "> default</ span > < span class ="ow "> is</ span > < span class ="kc "> None</ span > < span class ="p "> ):</ span >
439432 < span class ="n "> default</ span > < span class ="o "> =</ span > < span class ="n "> deafult</ span >
433+
434+ < span class ="c1 "> # createdAt is stored as string in the cloud but used as datetime object on the client side.</ span >
435+ < span class ="c1 "> # We need to make sure that `.created_at` and `.get("createdAt")` return the same value.</ span >
436+ < span class ="c1 "> # Otherwise users will get confused.</ span >
437+ < span class ="k "> if</ span > < span class ="n "> attr</ span > < span class ="o "> ==</ span > < span class ="s2 "> "createdAt"</ span > < span class ="p "> :</ span >
438+ < span class ="k "> if</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> created_at</ span > < span class ="ow "> is</ span > < span class ="kc "> None</ span > < span class ="p "> :</ span >
439+ < span class ="k "> return</ span > < span class ="kc "> None</ span >
440+ < span class ="k "> else</ span > < span class ="p "> :</ span >
441+ < span class ="k "> return</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> created_at</ span >
442+
443+ < span class ="c1 "> # Similar to createdAt.</ span >
444+ < span class ="k "> if</ span > < span class ="n "> attr</ span > < span class ="o "> ==</ span > < span class ="s2 "> "updatedAt"</ span > < span class ="p "> :</ span >
445+ < span class ="k "> if</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> updated_at</ span > < span class ="ow "> is</ span > < span class ="kc "> None</ span > < span class ="p "> :</ span >
446+ < span class ="k "> return</ span > < span class ="kc "> None</ span >
447+ < span class ="k "> else</ span > < span class ="p "> :</ span >
448+ < span class ="k "> return</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> updated_at</ span >
449+
440450 < span class ="k "> return</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _attributes</ span > < span class ="o "> .</ span > < span class ="n "> get</ span > < span class ="p "> (</ span > < span class ="n "> attr</ span > < span class ="p "> ,</ span > < span class ="n "> default</ span > < span class ="p "> )</ span > </ div >
441451
442452< div class ="viewcode-block " id ="Object.relation "> < a class ="viewcode-back " href ="../../index.html#leancloud.Object.relation "> [文档]</ a > < span class ="k "> def</ span > < span class ="nf "> relation</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> ,</ span > < span class ="n "> attr</ span > < span class ="p "> ):</ span >
0 commit comments