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 ?