تخطي للذهاب إلى المحتوى
القائمة
لقد تم الإبلاغ عن هذا السؤال
1 الرد
5821 أدوات العرض

Hi dears odoo community,

please, is there a way to change the timezone infos to a specific datetime field on odoo, not to apply to all the context of current user, but to a specific one.

Because whene i try to change it via .replace(tzinfo) i got this error:

ValueError: Datetime field expects a naive datetime: 2020-12-18 14:36:06+00:00

and if i try to assign it using tostring method , i dont see any changes , value on database still on db and there is a difference between two value on the client and on the db,

rec.my_dt = fields.Datetime.to_string(rec.my_dt.astimezone(timezone('UTC')))

i want them two on utc.

thanks in advance.

الصورة الرمزية
إهمال

Have you found any solution?

أفضل إجابة

You can't do that on an Odoo Datetime field as they are stored based on UTC.

What you can do is to add another field to the model and store into this your expected Datetime, adding to it the hours of your timezone, knowing that for the system will still be an UTC value.

It should be something like this:

from datetime import timedelta
Class InheditedClass(models.Model):
   _inherited = 'inherited.class'
    my_datetime = fields.Datetime(string="My datetime")
    def my_logic(self):
       self.my_datetime = original_datetime + timedelta(hours=1) # change 1 with your hours
الصورة الرمزية
إهمال
المنشورات ذات الصلة الردود أدوات العرض النشاط
1
أغسطس 21
6356
0
يوليو 21
2676
3
مايو 18
7888
2
أغسطس 25
2417
1
يوليو 25
913