Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
1 Trả lời
32670 Lượt xem

Hi, I want to delete the records in the one2many fields when the original record that had them is deleted. I tried adding ondelete="cascade" to the one2many declaration but the records in the one2many table still remains when i delete the record holding it. How do i achieve this?

Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

Hi,
You should put ondelete="cascade" in the field relation id like here:

class sale_order(osv.osv):
    _name = 'sale.order'
    _columns = {
        'name': fields.char('Order Reference', size=64, required=True, readonly=True, states={'draft': [('readonly', False)], 'sent': [('readonly', False)]}, select=True),
        'order_line': fields.one2many('sale.order.line', 'order_id', 'Order Lines', readonly=True, states={'draft': [('readonly', False)], 'sent': [('readonly', False)]}),
        ....
sale_order()


class sale_order_line(osv.osv):
     _name = 'sale.order.line'
     _columns = {
        'order_id': fields.many2one('sale.order', 'Order Reference', required=True, ondelete='cascade', select=True, readonly=True, states={'draft':[('readonly',False)]}),
        .
        .
        .
sale_order_line()
Ảnh đại diện
Huỷ bỏ
Tác giả

Thanks, i was doing it the other way round. Now it solved the problem

Bài viết liên quan Trả lời Lượt xem Hoạt động
0
thg 3 15
3243
2
thg 5 24
9193
5
thg 7 20
10695
5
thg 1 24
17097
0
thg 9 15
3879