Penerapan context digunakan sebagai pemberi parameter untuk method yang akan digunakan. Sebagai contoh, operasi hapus (delete) bisa diterapkan pada setiap situasi (view, many2one widget, one2many widget, dll), untuk membatasinya (misal hanya pada view baru bisa dihapus) maka kita perlu melakukan overriding method unlink (untuk Delete) dengan menambahkan parameter, sehingga setiap akan menghapus akan didasarkan pada parameter/context tersebut.

Contoh Penggunaan :

(Pada py) 

def unlink(self, cr, uid, ids, context={}):

situasi = context.get(‘situasi’, ‘aman’)

if situasi == ‘aman’:

return super(sale_order, self).unlink(cr, uid, ids, context)

else:

raise osv.except_osv(‘Peringatan’, ‘Data tidak bisa dihapus’)

(Pada View, Ex. widget many2one)

context=”{‘situasi’ : ‘tidak aman’}”

 

Penjelasan :

context untuk widget many2one memberikan parameter situasi = tidak aman, sehingga sewaktu widget many2one muncul dan tombol delete dihapus akan memberikan warning “Data tidak bisa dihapus” karena parameter yang didefinisikan pada method di py adalah situasi = aman. Hal tersebut juga bisa diterapkan pada create dan copy.

 

Sumber : Andhitia Rama