2017-08-28 23 views
12

मैं ओडू में डेटाटाइम फ़ील्ड में पोस्टग्रेर्स डेटाबेस समय के सेट समय को प्रदर्शित करने का प्रयास कर रहा हूं।पोस्टग्रेस डेटाटाइम फ़ील्ड को ओडू डेटाटाइम फ़ील्ड में सेट करने के लिए कैसे करें

मैं क्षेत्र बना रहा हूं कि समय निर्धारित करने के लिए।

last_modify_article = fields.Datetime("Last Modify Date") 

लेकिन मेरी दिनांक समय: ~ 2017-08-28T08: 43: 56 + 0200 पूरी तरह से Postgres डेटाबेस में संग्रहीत किया जाता है लेकिन Odoo में विभिन्न में देखा था।

तो, मेरा सवाल यह है कि मैं क्षेत्र में डेटाबेस दिनांक-समय का प्रबंधन कैसे कर सकता हूं।

Here is the Postgres Time

और

Here is Odoo field to set datetime in UTC

उत्तर

4

Odoo दिनांक और समय डेटाबेस में यूटीसी के रूप में जमा है और उपयोगकर्ता के समय क्षेत्र के लिए यह सामने के अंत पर परिवर्तित करने के लिए बनाया गया है।

आपके उपयोगकर्ता के लिए समय क्षेत्र निर्धारित किया गया है? आप ऊपरी दाएं, फिर प्राथमिकताएं में अपना नाम क्लिक कर सकते हैं। समय क्षेत्र पॉपअप फॉर्म पर दिखाया जाना चाहिए।

+0

हाँ आप Odoo का अधिकार यूटीसी के लिए निर्धारित है, लेकिन मेरे समय तो कैसे मैं क्षेत्र में एक ही समय मुद्रित कर सकते हैं डेटाबेस में सही है । और मैं एक अलग देश के साथ काम कर रहा हूं इसलिए मैं अपनी प्राथमिकताओं में टाइमज़ोन असाइन नहीं कर सकता। और यदि मैं टाइमज़ोन को ब्राउज़र के साथ मेल नहीं खाता हूं। तो जिस तरह से मैं अपने फ़ील्ड मान में डेटाबेस मान के रूप में प्रिंट करता हूं –

+0

@ हरितित त्रिवेदी क्या आप मैन्युअल रूप से डेटाबेस (या पायथन में) समय निर्धारित करते हैं या यह ओडू फ्रंटेंड से सेट है? – travisw

+0

असल में मैं एपीआई के साथ काम कर रहा हूं इसलिए मैं एपीआई प्राप्त कर सकता हूं और डेटटाइम फ़ील्ड सेट कर सकता हूं –

4

वास्तव में डेटाबेस सिस्टम टाइमज़ोन के अनुसार डेटाटाइम फ़ील्ड को संग्रहीत करता है। odoo विचारों में जो उपयोगकर्ता सेट के अनुसार स्वचालित रूप से कनवर्ट किया जाएगा यदि यह सेट है। आपकी छवियों पर मैं समय अंतर आईडी +5: 30 यानी एशिया/कोलाकाटा टाइमज़ोन देख सकता हूं। इसलिए डेटाटाइम फ़ील्ड पर आपके कस्टम ऑपरेशंस को उपयोगकर्ता के अनुसार टाइमज़ोन के उचित रूपांतरण की आवश्यकता होती है। ओडू विचार और ओआरएम तरीकों को tz के साथ moment.js और pytz रूपांतरणों के साथ इलाज किया जाता है। यह वास्तव में odoo में विभिन्न टाइमज़ोन प्रबंधित करने के लिए एक अच्छी सुविधा है। आप datetime वस्तु पर astimezone उपयोग कर सकते हैं:

def astimezone(self, tz): # known case of datetime.datetime.astimezone 
    """ tz -> convert to local time in new timezone tz """ 
    return datetime(1, 1, 1) 

या

fields.Datetime.context_timestamp(self, datetime.strptime(value, DEFAULT_SERVER_DATETIME_FORMAT)) 
संबंधित मुद्दे