Szeto Consultants

Odoo: Mohon Pencerahan Konversi View ID (Integer) ke Nama View

Odoo: Mohon Pencerahan Konversi View ID (Integer) ke Nama View

Diposting pada 26 May 2026, 00:42
Ditanyakan oleh: Kurniawan

Halo teman-teman praktisi Odoo di sini, saya Kurniawan dari divisi IT.

Saya lagi ada sedikit kendala teknis nih di Odoo dan butuh pencerahan dari yang sudah pengalaman.

Jadi begini, saya seringkali mendapatkan referensi untuk view, baik itu dari `ir.model.data` atau saat inspect elemen, dalam bentuk `id` berupa integer. Contoh: `view_id = 123`.

Nah, kebutuhan saya adalah bagaimana caranya agar bisa mengkonversi atau menampilkan nama view yang sesuai dari `id` integer tersebut. Misalnya, dari `view_id = 123` itu saya mau tahu nama view-nya adalah 'account.invoice_form' atau 'sale.order_form_view_inherit'.

Ini penting banget buat saya ketika sedang membuat custom log, debugging, atau bahkan di kustomisasi QWeb report agar lebih mudah dibaca dan dipahami.

Adakah cara paling clean dan efektif di Python Odoo untuk melakukan hal ini? Mungkin ada method di ORM atau best practice lain yang bisa saya terapkan?

Mohon share pengalamannya ya, teman-teman. Terima kasih banyak sebelumnya!

Balasan (1)

Admin Odoo ForumAdmin & AI Support26 May 2026, 00:42
Halo Mas Kurniawan,

Wah, paham banget nih kendala yang Mas alami! Memang seringkali di Odoo kita berinteraksi dengan ID integer, dan untuk proses debugging atau custom log, menampilkan nama view-nya itu jauh lebih informatif daripada sekadar angka.

Tenang saja Mas, ada cara yang sangat clean dan efektif di Python Odoo untuk mengkonversi view ID (integer) menjadi nama view. Semua view di Odoo itu tersimpan sebagai record dalam model `ir.ui.view`. Jadi, kita tinggal "membaca" record view tersebut berdasarkan ID-nya.

Berikut adalah caranya menggunakan ORM Odoo:

Di dalam kode Python Odoo Anda, misalnya di suatu method, Anda bisa melakukan ini:


def get_view_name_from_id(self, view_id):
# Pastikan view_id adalah integer yang valid
if not isinstance(view_id, int):
return "ID View Tidak Valid"

# Mencari record view berdasarkan ID
view_record = self.env['ir.ui.view'].browse(view_id)

# Mengecek apakah record view ditemukan dan valid
if view_record and view_record.exists():
# Mengambil nama view
return view_record.name
else:
return "View Tidak Ditemukan"


Jadi, kalau Mas Kurniawan punya `view_id = 123` dan ingin tahu nama view-nya, Anda bisa panggil `get_view_name_from_id(123)`.

Penjelasan singkatnya:
`self.env['ir.ui.view']` adalah cara untuk mengakses model 'ir.ui.view'. Model ini berisi definisi semua tampilan (view) di Odoo.
`.browse(view_id)` adalah metode ORM yang digunakan untuk mengambil satu atau beberapa record dari sebuah model berdasarkan ID-nya. Hasilnya adalah objek recordset Odoo.
`.name` adalah field default yang menyimpan nama tampilan dari view tersebut, misalnya 'account.invoice_form' atau 'sale.order_form_view_inherit' seperti yang Mas sebutkan.

Selain field `name`, kadang kala ada juga field `xml_id` yang bisa lebih spesifik atau unik, terutama untuk view yang didefinisikan di file XML modul. Mas bisa coba juga: `view_record.xml_id` jika merasa lebih cocok dengan kebutuhan logging atau report-nya, karena `xml_id` seringkali merepresentasikan 'external ID' dari view tersebut. Tapi umumnya, `name` sudah cukup untuk banyak kasus.

Ini akan sangat membantu Mas saat debugging karena Mas bisa langsung melihat nama view yang sedang diproses atau dimodifikasi, bukan cuma angka ID yang perlu dicari tahu lagi. Di QWeb report pun, Mas bisa passing nama view ini sebagai variabel untuk ditampilkan atau digunakan dalam logika kondisional agar report-nya lebih dinamis dan mudah dibaca.

Semoga pencerahan ini membantu Mas Kurniawan dalam project-nya ya! Kalau ada pertanyaan lanjutan, jangan sungkan bertanya lagi. Semangat!

Berikan Tanggapan

⚠️ Anti-Spam Aktif: Dilarang menyertakan tautan/URL di dalam form ini.
Butuh Konsultasi Odoo? 👋
Scroll to Top