может кто-нибудь предложить, как удалить кнопку удаления в строках one2many, когда одно поле имеет значение True

может кто-нибудь предложить, как удалить кнопку удаления в строках one2many, когда одно поле имеет значение True

я попытался использовать def unlink(self): и переопределить этот метод

Примечание: я работаю в odoo 10


person mani shankar    schedule 23.05.2017    source источник
comment
Объясните немного больше, ваше исключение кажется грязным! и неполный.   -  person DexJ    schedule 23.05.2017
comment
на самом деле у меня есть поле one2many, содержащее одно логическое поле и другие поля в нем.... то, что я хочу, это всякий раз, когда логическое поле имеет значение True, я просто хочу, чтобы кнопка удаления в этих строках one2many была невидимой.....   -  person mani shankar    schedule 23.05.2017


Ответы (1)


Вы можете настроить представление ‹tree delete="0">, чтобы отключить удаление всех записей. в противном случае нет способа поставить условие на это.

Способ, которым вы пытались переопределить unlink(), - единственный способ сделать это. вы можете проверить значение своего логического поля в методе и соответственно поднять ошибку.

@api.multi
def unlink(self):
    for rec in self:
        if rec.your_boolean_field :
            raise UserError(_('In order to delete a record, you must first unset your_boolean_field.'))
    return super(YourModel, self).unlink()

надеюсь это поможет!

person DexJ    schedule 23.05.2017
comment
во-первых, спасибо за ваш ответ, но метод удаления ссылки не работает в odoo 10 для кнопки удаления в одной, двух строках... мне нужна помощь для этого.. я просто хочу увидеть метод, написанный для этой кнопки.. TIA - person mani shankar; 23.05.2017
comment
сурово, это будет работать для one2many, если вы определите его в comodel, т.е. если вы напишете unlink() в sale.order.line и удалите строку из sale.order, это вызовет отвязку so.order.line, и вы можете вызвать ошибку оттуда .3 - person DexJ; 23.05.2017