@@ -401,25 +401,18 @@ <h1>leancloud.object_ 源代码</h1><div class="highlight"><pre>
401
401
< span class ="p "> }</ span >
402
402
403
403
< 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
+
423
416
424
417
< 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 >
425
418
< 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>
437
430
< span class ="c1 "> # for backward compatibility</ span >
438
431
< 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 >
439
432
< 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
+
440
450
< 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 >
441
451
442
452
< 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