Hello, kali ini saya menuliskan lagi tentang django, cara memanipulasi field di form django admin, maksudnya seperti ini,
Kita mempunyai sebuah raw data, dengan status data tersebut O / Open, selama status nya Open berarti data tersebut boleh dilakukan perubahan, tetapi jika status datanya Close / C bearti data tersebut sudah tidak boleh dilakukan perubahan.
Disini saya mengakali dengan cara simple jika statusnya Open Field-field nya bisa di isi / diubah, sedangkan jika statusnya Close maka field-fieldnya akan readOnly (tidak bisa dilakukan editing/pengetikan)
Sekarang kita ke mekanisme codingnya ya.
Bekerja di file admin.py dan tambahkan function seperti dibawah ini :
def get_readonly_fields(self, request, obj=None):
fields = super(NamaAdminNya, self).get_readonly_fields(request, obj=obj)
if obj.status == ‘C’:
return fields + (‘field 1’, ‘field 2’)
return fields
if object status C sesuaikan dengan kebutuhan kalian ya / sesuaikan dengan data di database yg kalian simpan.
return fields + artinya kalian tambahkan jika status nya C maka yang di hidden/readonly adalah field apa saja.
Bagaimana mudah bukan ?