Просто добавьте этот домен в поле domain="[('id', '!=', id)]"
.Это удалит объект для его собственной формы.
Вы также можете использовать систему вложенных множеств odoo для родительских и дочерних отношений, что имеет большое преимущество в разрешении запроса родительских дочерних отношений, установив _parent_store = True
в определении моделей, идобавив parent_left, parent_right
поля, вы также можете использовать @api.constraint
на parent_id
, вызывая odoo Models _check_recursion
, чтобы гарантировать, что не будет рекурсивного создания родительских дочерних отношений.Например, для модели odoo Product category
:
class ProductCategory(models.Model):
_name = "product.category"
_description = "Product Category"
_parent_name = "parent_id"
_parent_store = True
_parent_order = 'name'
_rec_name = 'complete_name'
_order = 'parent_left'
parent_id = fields.Many2one('product.category', 'Parent Category', index=True, ondelete='cascade')
parent_left = fields.Integer('Left Parent', index=1)
parent_right = fields.Integer('Right Parent', index=1)
@api.constrains('parent_id')
def _check_category_recursion(self):
if not self._check_recursion():
raise ValidationError(_('Error ! You cannot create recursive categories.'))
return True