संपादित करें: यह अब एक बग के रूप में मान्यता दी गई है और एक ठीक तरह कार्य प्रगति पर है यह लग रहा है: https://github.com/tomchristie/django-rest-framework/issues/3732#issuecomment-267635612DjangoRestFramework ModelSerializer DateTimeField केवल ऑब्जेक्ट निर्माण में वर्तमान समय क्षेत्र के परिवर्तित
मैं एक Django परियोजना जहाँ मैं करने के लिए उपयोगकर्ता की उम्मीद है एक निश्चित समय क्षेत्र में रहो। मेरी सेटिंग्स में TIME_ZONE = 'Asia/Kolkata'
और USE_TZ = True
है।
मेरे पास एक मॉडल है जिसमें डेटाटाइमफील्ड शामिल है। जब मैं पहली बार ऑब्जेक्ट बनाता हूं, तो मॉडेलरियलाइज़र +5:30
के साथ डेटाटाइम देता है। कष्टप्रद, auto_now_add=True
के साथ डेटटाइम Z
के पीछे यूटीसी डेटाटाइम देते हैं। मैंने फील्ड के डिफ़ॉल्ट को वर्तमान समय के लिए कॉल करने योग्य बनाकर इसे ठीक किया है।
यदि मैं किसी भी समय ऑब्जेक्ट को फिर से क्रमबद्ध करता हूं, तो सभी डेटाटाइम यूटीसी में Z
के पीछे हैं। Django दस्तावेज़ीकरण से, मैं उम्मीद करता हूं कि serializer वर्तमान टाइमज़ोन का उपयोग करने के लिए, जो TIME_ZONE = 'Asia/Kolkata'
द्वारा निर्धारित डिफ़ॉल्ट टाइमज़ोन पर डिफ़ॉल्ट है। मैंने get_current_timezone_name()
के साथ अपने व्यू में वर्तमान टाइमज़ोन की जांच की है और यह 'Asia/Kolkata'
है। मैंने अपने दृश्य में activate('Asia/Kolkata')
का उपयोग करने का भी प्रयास किया है, लेकिन यूटीसी में अभी भी समय लौटाया जा रहा है।
ध्यान दें कि हर बार सही होते हैं (यूटीसी समय पहले 5:30 घंटे होते हैं), यह सिर्फ इतना है कि मैं समय बदलने के लिए अपेक्षा करता हूं। यूटीसी के समय के रूप में सभी डेटाटाइम डीबी में संग्रहीत किए जाते हैं।
क्या मुझे कुछ याद आ रहा है या यह Django Rest Framework serializers के साथ एक बग है?
यह स्पष्ट नहीं होता कि मैं क्यों ऑब्जेक्ट निर्माण के तुरंत बाद एक अलग परिणाम मिलता है। साथ ही, "वर्तमान समय क्षेत्र वह समय क्षेत्र है जिसका उपयोग प्रतिपादन के लिए किया जाता है" मुझे लगता है कि यह या तो जेएसओएन के "डिफ़ॉल्ट डेटाटाइम प्रतिनिधित्व" को ओवरराइड करता है या डीबी से पुनर्प्राप्ति के बाद डेटाटाइम को स्थानीयकृत करता है। अंत में, Django दस्तावेज़ भी स्पष्ट रूप से निर्दिष्ट करते हैं: "जब एक जागरूक डेटाटाइम को क्रमबद्ध करते हैं, तो यूटीसी ऑफसेट शामिल होता है, जैसे:" 2011-09-01T13: 20: 30 + 03: 00 ""। –
सोचो मैंने इसे समझ लिया, दिलचस्प समस्या। – Geotob
हम्म। Django दस्तावेज़ीकरण से मुझे आश्चर्य होगा अगर यह इरादा व्यवहार है, हालांकि ऐसा लगता है कि यह Django खुद के साथ एक मुद्दा है और DjangoRestFramework नहीं है। मैं आपके फिक्स में देख लूंगा। –