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

I want to overwrite a field many2many for put a tracking=True, I'm doing  category_id = fields.Many2many(
tracking=True
)

but it is not working

الصورة الرمزية
إهمال
أفضل إجابة

Greetings,

You should use (4, id) in the write method. To replace the new field value with old one

Ex:

for id in [category_ids]:
    my_obj.write({'category_id': [(4, id)]})

(0, 0, { values }) link to a new record that needs to be created with the given values dictionary
(1, ID, { values }) update the linked record with id = ID (write *values* on it)
(2, ID) remove and delete the linked record with id = ID (calls unlink on ID, that will delete the object completely, and the link to it as well)
(3, ID) cut the link to the linked record with id = ID (delete the relationship between the two objects but does not delete the target object itself)
(4, ID) link to existing record with id = ID (adds a relationship)
(5) unlink all (like using (3,ID) for all linked records)
(6, 0, [IDs]) replace the list of linked IDs (like using (5) then (4,ID) for each ID in the list of IDs)

Upvote if this solution help you.
Thanks
Regards,
Muhammad Ahsan Maqbool

الصورة الرمزية
إهمال
المنشورات ذات الصلة الردود أدوات العرض النشاط
1
فبراير 24
2012
0
يوليو 24
3068
0
يوليو 22
60
2
ديسمبر 23
33473
3
مايو 21
3993