Field dan widget¶
Fields structure the models of a database. If you think of a model as a table or spreadsheet, fields are the columns and records are the individual rows. Fields also define the type of data that is stored within them. The way in which a field's data is presented and formatted on the UI is controlled by its widget.
With Studio, it is possible to:
add new fields to your database. From a technical point of view, there are 15 field types in Odoo. However, you can choose from 21 field types in Studio, as some field types are available more than once with a different default widget;
add existing fields, i.e., fields that already exists on a model, to any view of that model;
Studio fields vs. property fields
Fields created using Studio are saved as columns in your Odoo database. Property fields, on the other hand, act as pseudo-fields; they are shared by all records that are linked to the same parent record (e.g., for tasks, the project, or for a product, the product category), but they are not saved as columns in your database.
Example
Adding a Deadline field to the form view of a task using Studio makes that field visible in every task in your database. Adding a Special instructions property field to a task makes the field visible in all tasks within the same project (i.e., its parent) while other projects’ tasks remain unaffected.
Field types¶
Fields can be broadly divided into two categories:
Simple fields, which contain basic values, such as text, numbers, files, etc.
Relational fields, which are used to link and display the data from records on another model.
AI fields
AI fields are essentially standard Odoo fields with added AI capabilities that allow their values to be generated automatically through prompts.
Kolom sederhana¶
Catatan
Non-default widgets, when available, are presented as bullet points or sub-headings.
Teks (char)¶
Kolom Teks digunakan untuk teks pendek yang berisi karakter apa pun. Satu baris teks ditampilkan saat mengisi kolom.
Lencana: menampilkan nilai di dalam bentuk bulat, mirip dengan tag. Nilai tidak dapat diedit di antarmuka pengguna, tetapi nilai default dapat diatur.
Salin ke Papan Klip: pengguna dapat menyalin nilai dengan mengklik tombol.
E-mail: nilai menjadi tautan mailto yang dapat diklik.
Gambar: menampilkan gambar menggunakan URL. Nilai tidak dapat diedit secara manual, tetapi nilai default dapat diatur.
Catatan
This works differently from selecting the Image field directly, as the image is not stored in Odoo when using a Text field with the Image widget. For example, it can be useful if you want to save disk space.
Telepon: nilai menjadi tautan tel yang dapat diklik.
Tip
Centang Aktifkan SMS untuk menambahkan opsi mengirim SMS langsung dari Odoo di samping kolom.
URL: nilai menjadi URL yang dapat diklik.
Example
Teks Multibaris (text)¶
Kolom Teks Multibaris digunakan untuk teks yang lebih panjang yang berisi jenis karakter apa pun. Dua baris teks ditampilkan di antarmuka pengguna saat mengisi kolom.
Salin ke Papan Klip: pengguna dapat menyalin nilai dengan mengklik tombol.
Example
Bilangan bulat (integer)¶
Kolom Bilangan Bulat digunakan untuk semua bilangan bulat (positif, negatif, atau nol, tanpa desimal).
Diagram Lingkaran Persentase: menampilkan nilai di dalam lingkaran persentase, biasanya untuk nilai yang dihitung. Nilai tidak dapat diedit di antarmuka pengguna, tetapi nilai default dapat diatur.
Bilah Progres: menampilkan nilai di samping bilah persentase, biasanya untuk nilai yang dihitung. Kolom tidak dapat diedit secara manual, tetapi nilai default dapat diatur.
Pegangan: menampilkan ikon pegangan seret untuk mengurutkan rekaman secara manual di tampilan Daftar.
Example
Desimal (float)¶
Bidang Desimal digunakan untuk semua angka desimal (positif, negatif, atau nol, dengan desimal).
Catatan
Angka desimal ditampilkan dengan dua desimal setelah koma pada antarmuka pengguna, tetapi disimpan dalam database dengan presisi lebih tinggi.
Moneter: mirip dengan penggunaan bidang Moneter. Disarankan untuk menggunakan yang terakhir karena menawarkan lebih banyak fungsionalitas.
Persentase: menampilkan karakter persen
%setelah nilai.Lingkaran Persentase: menampilkan nilai di dalam lingkaran persentase, biasanya untuk nilai yang dihitung. Bidang tidak dapat diedit secara manual, tetapi nilai default dapat diatur.
Bilah Progres: menampilkan nilai di samping bilah persentase, biasanya untuk nilai yang dihitung. Kolom tidak dapat diedit secara manual, tetapi nilai default dapat diatur.
Waktu: nilai harus mengikuti format hh:mm, dengan maksimum 59 menit.
Example
Moneter (monetary)¶
Bidang Moneter digunakan untuk semua nilai moneter.
Catatan
Ketika Anda pertama kali menambahkan bidang Moneter, Anda akan diminta untuk menambahkan bidang Mata Uang jika belum ada pada model. Odoo menawarkan untuk menambahkan bidang Mata Uang untuk Anda. Setelah ditambahkan, tambahkan bidang Moneter lagi.
Example
Html (html)¶
Bidang Html digunakan untuk menambahkan teks yang dapat diedit menggunakan editor HTML Odoo.
Teks Multiline: menonaktifkan editor HTML Odoo untuk memungkinkan pengeditan HTML mentah.
Example
Tanggal (date)¶
Bidang Tanggal digunakan untuk memilih tanggal pada kalender.
Relative Date: expresses the field value in relation to the current date using relative terms such as Yesterday, Today, In 3 days, 2 months ago, etc. This field should be set to Read only.
Example
Tanggal & Waktu (datetime)¶
Field Tanggal & Waktu digunakan untuk memilih tanggal pada kalender dan waktu pada jam. Waktu saat ini dari user secara otomatis digunakan jika tidak ada waktu yang diatur.
Tip
Selain properti umum, beberapa properti spesifik tersedia untuk field Tanggal & Waktu yang memiliki widget Tanggal & Waktu atau Rentang Tanggal.
Rentang Tanggal (daterange)¶
Widget Rentang Tanggal digunakan untuk menampilkan periode waktu yang ditentukan oleh tanggal mulai dan tanggal akhir dalam satu baris. Rentang tanggal dapat memiliki tanggal mulai dan akhir yang wajib, misalnya untuk acara beberapa hari, atau mengizinkan tanggal mulai atau akhir yang opsional, misalnya untuk intervensi layanan lapangan atau tugas project.
Menambahkan rentang tanggal memerlukan dua field: field Tanggal & Waktu dengan widget Rentang Tanggal dan field lain yang dipilih sebagai tanggal mulai atau tanggal akhir. Field dasar ini dapat berupa field Tanggal atau Tanggal & Waktu yang sudah ada, atau yang dibuat khusus untuk tujuan ini.
Untuk menambahkan rentang tanggal:
Identifikasi field Tanggal atau Tanggal & Waktu yang ada yang dapat digunakan sebagai field tanggal mulai/akhir dasar, atau tambahkan yang baru. Jika rentang tanggal:
memiliki tanggal mulai dan akhir yang wajib, field ini dapat berupa tanggal mulai atau tanggal akhir; hasilnya sama.
mengizinkan tanggal mulai atau akhir yang opsional, field ini adalah tanggal mulai atau tanggal akhir.
Tip
Untuk menghindari menampilkan informasi yang sama dua kali, field tanggal mulai/akhir dasar dapat dibuat tidak terlihat dengan mengaktifkan Invisible atau dihapus dari tampilan dengan mengklik Remove from view.
Tambahkan field Tanggal & Waktu dan atur field Widget ke Rentang Tanggal.
Masukkan Label yang sesuai.
Pilih field tanggal mulai/akhir dasar dari dropdown Start date field atau End date field, sesuai kebutuhan.
Jika rentang tanggal harus memiliki tanggal mulai dan akhir yang wajib, aktifkan Always range.
Perbarui properti umum atau properti untuk field Tanggal & Waktu lainnya sesuai kebutuhan, lalu klik Close di sudut kanan atas layar.
Example
Kotak Centang (boolean)¶
Bidang Checkbox digunakan ketika suatu nilai hanya boleh benar atau salah, ditunjukkan dengan mencentang atau tidak mencentang kotak centang.
Button: menampilkan tombol radio. Widget berfungsi tanpa beralih ke mode edit.
Toggle: menampilkan tombol toggle. Widget berfungsi tanpa beralih ke mode edit.
Example
Selection (selection)¶
Bidang Selection digunakan ketika pengguna harus memilih satu nilai dari sekelompok nilai yang telah ditentukan sebelumnya.
Lencana: menampilkan nilai di dalam bentuk bulat, mirip dengan tag. Nilai tidak dapat diedit di antarmuka pengguna, tetapi nilai default dapat diatur.
Badges: menampilkan semua nilai yang dapat dipilih secara bersamaan di dalam bentuk persegi panjang, diatur secara horizontal.
Priority: menampilkan simbol bintang alih-alih nilai, yang dapat digunakan untuk menunjukkan tingkat kepentingan atau kepuasan, misalnya. Ini memiliki efek yang sama dengan memilih Priority field, meskipun, untuk yang terakhir, empat nilai prioritas sudah ditentukan sebelumnya.
Radio: menampilkan semua nilai yang dapat dipilih pada waktu yang sama sebagai tombol radio.
Tip
Secara default, tombol radio diatur secara vertikal. Aktifkan Display horizontally untuk mengubah cara mereka ditampilkan.
Status Bar: menampilkan semua nilai yang dapat dipilih pada waktu yang sama sebagai bilah kemajuan berbentuk panah.
Tip
Secara default, nilai pada bilah status dapat dipilih. Nonaktifkan Clickable untuk mencegah nilai diedit pada UI.
Example
Priority (selection)¶
Bidang Priority digunakan untuk menampilkan sistem penilaian tiga bintang, yang dapat digunakan untuk menunjukkan tingkat kepentingan atau kepuasan. Jenis bidang ini adalah Selection field dengan widget Priority yang dipilih secara default dan empat nilai prioritas yang telah ditentukan sebelumnya. Akibatnya, widget Badge, Badges, Radio, dan Selection memiliki efek yang sama seperti yang dijelaskan di bawah Selection.
Tip
Untuk mengubah jumlah bintang yang tersedia dengan menambahkan atau menghapus nilai, klik Edit Values. Perhatikan bahwa nilai pertama sama dengan 0 bintang (yaitu, ketika tidak ada pilihan yang dibuat), jadi memiliki empat nilai menghasilkan sistem penilaian tiga bintang, misalnya.
Example
File (binary)¶
Bidang File digunakan untuk mengunggah jenis file apa pun, atau menandatangani formulir (widget Sign).
Image: pengguna dapat mengunggah file gambar, yang kemudian ditampilkan di Form view. Ini memiliki efek yang sama dengan menggunakan Image field.
PDF Viewer: pengguna dapat mengunggah file PDF, yang kemudian dapat dilihat dari tampilan Form.
Sign: pengguna dapat menandatangani formulir secara elektronik. Ini memiliki efek yang sama dengan memilih field Sign.
Example
Image (binary)¶
Field Image digunakan untuk mengunggah gambar dan menampilkannya di tampilan Form. Tipe field ini adalah field File dengan widget Image yang dipilih secara default. Oleh karena itu, widget File, PDF Viewer, dan Sign memiliki efek yang sama seperti yang dijelaskan di File.
Tip
Untuk mengubah ukuran tampilan gambar yang diunggah, pilih Small, Medium, atau Large di bawah opsi Size.
Sign (binary)¶
Field Sign digunakan untuk menandatangani formulir secara elektronik. Tipe field ini adalah field File dengan widget Sign yang dipilih secara default. Oleh karena itu, widget File, Image, dan PDF Viewer memiliki efek yang sama seperti yang dijelaskan di File.
Tip
Untuk memberikan opsi Auto kepada pengguna saat harus membuat tanda tangan mereka, pilih salah satu field Auto-complete with yang tersedia (Text, Many2One, dan Related Field pada model saja). Tanda tangan secara otomatis dihasilkan menggunakan data dari field yang dipilih.
Field relasional¶
Catatan
Non-default widgets, when available, are presented as bullet points or sub-headings.
Many2One (many2one)¶
Field Many2One digunakan untuk menghubungkan record lain (dari model lain) ke record yang sedang diedit. Nama record dari model lain kemudian ditampilkan pada record yang sedang diedit.
Example
Pada model Sales Order, field Customer adalah field Many2One yang menunjuk ke model Contact. Ini memungkinkan banyak sales order terhubung ke satu contact (pelanggan).
Tip
Untuk mencegah pengguna membuat record baru di model yang terhubung, centang Disable creation.
Untuk mencegah pengguna membuka record di jendela pop-up, centang Disable opening.
Untuk membantu pengguna hanya memilih record yang tepat, klik Domain untuk membuat filter.
Untuk memicu pencarian record yang ditautkan hanya setelah jumlah minimum karakter dimasukkan, masukkan nomor yang diinginkan di field Typeahead search. Dalam situasi di mana dataset besar, ini dapat meningkatkan relevansi dan performa pencarian.
Badge: menampilkan nilai di dalam bentuk bulat, mirip dengan tag. Nilai tidak dapat diedit di UI.
Radio: menampilkan semua nilai yang dapat dipilih pada waktu yang sama sebagai tombol radio.
One2Many (one2many)¶
Field One2Many digunakan untuk menampilkan relasi yang ada antara record pada model saat ini dan beberapa record dari model lain.
Example
Anda dapat menambahkan field One2Many pada model Contact untuk melihat banyak sales order dari satu pelanggan.
Catatan
Untuk menggunakan field One2Many, kedua model harus sudah dihubungkan menggunakan field Many2One. Relasi One2Many tidak ada secara independen: pencarian balik dari relasi Many2One yang ada dilakukan.
Lines (one2many)¶
Field Lines digunakan untuk membuat tabel dengan baris dan kolom (misalnya baris produk pada sales order).
Tip
Untuk memodifikasi kolom, klik field Lines kemudian Edit List View. Untuk mengedit form yang muncul saat user mengklik Add a line, klik Edit Form View.
Example
Many2Many (many2many)¶
Field Many2Many digunakan untuk menghubungkan beberapa record dari model lain ke beberapa record pada model saat ini. Field Many2Many dapat menggunakan Disable creation, Disable opening, Domain, seperti field Many2One.
Example
Pada model Task, field Assignees adalah field Many2Many yang menunjuk ke model Contact. Ini memungkinkan satu user ditugaskan ke banyak task dan banyak user ditugaskan ke satu task.
Tip
Untuk memicu pencarian record yang ditautkan hanya setelah jumlah minimum karakter dimasukkan, masukkan nomor yang diinginkan di field Typeahead search. Dalam situasi di mana dataset besar, ini dapat meningkatkan relevansi dan performa pencarian.
Checkboxes: user dapat memilih beberapa nilai menggunakan checkbox.
Tags: user dapat memilih beberapa nilai yang muncul dalam bentuk bulat, juga dikenal sebagai tags. Ini memiliki efek yang sama dengan memilih field Tags.
Add a field to a view¶
With Studio, it is possible to add:
a new field to a form or list view of a model
an existing field, i.e., a field that already exists on the model in question, to any view of that model
Tip
Add a new field to a form or list view to save it to the model and make it available as an existing field in other views of the same model.
Add a new field¶
Tip
Activate developer mode before adding a new field to see, and be able to edit, the field's technical name during configuration.
To add a new field, follow these steps:
Navigate to the relevant form or list view, then click the (Toggle Studio) icon in the upper-right corner. Alternatively, with any app open, click the (Toggle Studio) icon, then navigate to the relevant form or list view.
In the Add tab, drag the relevant field type from the New Fields section and drop it in the desired position. If the new field is a relational field, select the relevant reciprocal field, model, or related field in the pop-up.
In the Properties tab, configure the field's properties:
Enter the Label to be displayed as the field name on the UI; this is also used to generate the default technical name of the field.
Click anywhere outside the Label field to see the Technical Name updated with the default technical name.
Catatan
The Technical Name of a new field can be edited in Studio during the configuration process. At any other time, a field's technical name can only be modified via the technical settings of the database.
The technical name of a new field added using Studio is by default prefixed by
x_studio_.
Optionally, select a different Widget via the dropdown; the default widget for the field type is selected by default.
Optionally, configure any other field properties.
Click Close in the top-right corner to close Studio.
Lihat juga
Add an existing field¶
To add a field that exists on the model but that is not present on the current view, follow these steps:
Navigate to the relevant view, then click the (Toggle Studio) icon in the upper-right corner. Alternatively, with any app open, click the (Toggle Studio) icon, then navigate to the relevant view.
In the Add tab, in the left panel, click Existing Fields to reveal a list of all the model's fields that are not currently present in the view.
Drag the relevant field and drop it in the desired position.
In the Properties tab, configure the relevant properties for the field in the current view.
Catatan
Various properties can be configured independently for different views, if needed, such as the Label, the Widget, the visibility of the field for certain user groups, as well as whether or not the field is Invisible, Required, or Readonly.
Click Close in the top-right corner to close Studio.
Field properties¶
A series of general properties can be configured for most combinations of field type and widget. Additional properties are available depending on the specific field type and widget selected. For example, Date & Time fields using the Date & Time or Date Range widget have various specific properties that can be configured.
Properti umum¶
Class: Use Bootstrap or other custom classes defined in Odoo to customize how the field is styled and displayed on the UI.
Invisible: Aktifkan properti ini ketika user tidak perlu melihat field di UI. Ini membantu merapikan UI dengan hanya menampilkan field penting tergantung pada situasi tertentu.
Required: Aktifkan properti ini jika field harus selalu diisi oleh user sebelum dapat melanjutkan.
Readonly: Aktifkan properti ini jika user tidak boleh mengubah field.
Tip
The Invisible property also applies inside Studio. To view hidden fields in Studio, click on a view's View tab and enable Show Invisible Elements.
The Invisible, Required, and Readonly properties can be enabled for specific records only by clicking on Conditional and creating a filter.
Example
On the form view of the Contact model, the Title field only appears when Individual is selected, as that field would not be helpful for a Company contact.
Label: This is the field name on the UI; the label is used to generate the technical name of the field.
Help Tooltip: Untuk menjelaskan tujuan field, tambahkan deskripsi. Teks akan ditampilkan di dalam kotak tooltip saat mengarahkan mouse ke tanda tanya di samping label field.
Technical Name: To view a field's technical name in Studio (and, during the configuration of a new field, edit it if desired), activate developer mode.
Tip
If this field needs to be updated but is no longer editable via Studio, the technical name can be modified via the technical settings of the database.
Widget: Untuk mengubah tampilan atau fungsionalitas default field, pilih salah satu widget yang tersedia.
Placeholder: To provide an example of how a field should be completed, add a fixed placeholder text. The text appears in light gray until a value is entered.
Dynamic Placeholder: To provide the value of the selected field as an example of how a field should be completed. The text appears in light gray until a value is entered.
Default value: Untuk menampilkan nilai default di field saat record dibuat, tambahkan nilai.
Allow visibility to groups: Untuk membatasi user mana yang dapat melihat field, pilih satu atau lebih grup akses user.
Forbid visibility to groups: Untuk mencegah user tertentu melihat field, pilih satu atau lebih grup akses user.
Properti untuk field Date & Time¶
For Date & Time fields using the Date & Time or Date Range widget, some specific properties are available:
Minimal precision: Determine the smallest date unit that must be selected in the date selector. The possible values are
Day,Month,YearorDecade. If no value is selected, the user must select a day in the date selector.Maximal precision: Determine the largest date unit that can be used to navigate the date selector. The possible values are
Day,Month,YearorDecade. If no value is selected, the user can navigate the date selector by decade.Warning for future dates: Aktifkan properti ini untuk menampilkan ikon peringatan jika tanggal di masa depan dipilih.
Date format: Secara default tanggal akan ditampilkan sebagai
Apr 2, 2025, 08:05 AM. Aktifkan properti ini untuk menampilkan tanggal dalam format4/2/2025 08:05:00. Mode numerik adalah format yang ditetapkan pada bahasa saat ini. Dalam mode ini detik selalu ditampilkan.Show date: Properti ini diaktifkan secara default untuk field Date & Time. Nonaktifkan properti ini untuk hanya menampilkan waktu.
Show time: Properti ini diaktifkan secara default untuk field Date & Time. Pada field read-only, nonaktifkan properti untuk hanya menampilkan tanggal. Ini dapat membuat tampilan daftar lebih rapi, misalnya.
Show seconds: Properti ini dinonaktifkan secara default untuk field Date & Time. Aktifkan properti untuk menampilkan detik.
Time interval: Masukkan nilai untuk menentukan interval menit yang ditampilkan dalam pemilih waktu. Misalnya, masukkan 15 untuk memungkinkan interval seperempat jam. Nilai default ditetapkan ke 5 menit.
Earliest accepted date: Masukkan tanggal paling awal yang dapat dipilih dalam pemilih tanggal dalam format ISO, yaitu
YYYY-MM-DD. Jika tanggal saat ini selalu merupakan tanggal paling awal yang diterima, masukkantoday. Pada pemilih tanggal, tanggal sebelum tanggal paling awal yang diterima ditampilkan abu-abu.Latest accepted date: Masukkan tanggal paling akhir yang dapat dipilih dalam pemilih tanggal dalam format ISO, yaitu
YYYY-MM-DD. Jika tanggal saat ini selalu merupakan tanggal paling akhir yang diterima, masukkantoday. Pada pemilih tanggal, tanggal setelah tanggal paling akhir yang diterima ditampilkan abu-abu.
Modify a field's properties¶
To modify the properties of a field, follow these steps:
Navigate to the relevant view, then click the (Toggle Studio) icon in the upper-right corner. Alternatively, with any app open, click the (Toggle Studio) icon, then navigate to the relevant view.
Click on the relevant field.
In the Properties tab, make any desired changes to the field properties.
Tip
Various properties can be configured independently for different views, such as the Label, the Widget, the visibility of the field for certain user groups, as well as whether or not the field is Invisible, Required, or Readonly.
Click Close in the top-right corner to close Studio.
Catatan
The Technical Name of a field (visible in Studio with developer mode activated) cannot be modified in Studio; this can be done via the technical settings of the database.
Modify a field's technical name¶
To modify the technical name of a field, activate developer mode, then follow these steps:
With the field open in Studio, copy the technical name of the field.
Remove the field from all views in Studio, then click Close to close Studio.
Navigate to .
Paste the copied technical name into the search bar, then open the relevant field.
Modify the Field Name as needed.
Once the field's technical name has been updated, the field can then be added (back) to the relevant view(s) from the list of existing fields.
Penting
When updating the technical name of a field, make sure to keep at least the x_ prefix, which is
required for any custom field; for fields created using Studio, keep the x_studio_ prefix to
allow such fields to be more easily identified.
Remove a field from a view¶
To remove a field from a view, follow these steps:
Navigate to the relevant view, then click the (Toggle Studio) icon in the upper-right corner. Alternatively, with any app open, click the (Toggle Studio) icon, then navigate to the relevant view.
Click on the relevant field.
Scroll to the bottom of the Properties tab, then click Remove from view.
Click Ok to confirm the action.
Tip
A removed field can be easily added back to the view at a later stage, if needed.
If the intention is to declutter the view, it is also possible to modify a field and make it Invisible on the view in question.