odoo many2one и many2many - PullRequest
       10

odoo many2one и many2many

0 голосов
/ 08 февраля 2019

У меня есть поле типа many2one.Также в моей базе данных есть много записей.

Так что сейчас я хочу изменить тип этого поля с many2one на many2many, но когда я создаю запись, она показывает мне Integrity Error.

Это мое поле:

bed_id = fields.Many2one('i.bed', 'bed', required=True, ondelete="restrict",  track_visibility="onchange")

И я изменил его на следующее:

bed_id = fields.Many2many('i.bed', 'bed', required=True,string="beds",  track_visibility="onchange")  

Ошибка целостности:

Операция не может быть завершена, возможно, из-за следующего: - удаление: вы можете пытаться удалить запись, в то время как другие записи все еще ссылаются на нее - создание / обновление: обязательное поле установлено неправильно

[объектсо ссылкой: bed_id - bed.id]

Как это исправить, не удаляя существующие записи в моей базе данных?

1 Ответ

0 голосов
/ 08 февраля 2019

Я бы изменил имя нового (many2many) поля на bed_ids.

Во-первых, это ради рекомендаций Odoo, а во-вторых, я не думаю, что Odoo может перенести поле из many2one вmany2many, потому что на стороне базы данных это совершенно другое отношение.Поля many2one - это просто внешние ключи для других таблиц, но многие поля многих2 реализуются ассоциативной таблицей.

Поэтому я бы позволил старому полю просто существовать, чтобы вы могли перенести его самостоятельно.После миграции вы должны удалить это поле или позволить Odoo удалить это поле, удалив его в своем коде.

...