[ English | 中文 (简体, 中国) | русский | português (Brasil) | नेपाली | 한국어 (대한민국) | Indonesia | français | español | esperanto | English (United Kingdom) | Deutsch ]
Horizon DataTables¶
Horizon menyertakan API yang diprogram untuk membuat tabel secara pemrograman di UI. Mengapa Anda menginginkan ini? Ini berarti bahwa setiap tabel merender dengan benar dan konsisten, tindakan level-tabel dan baris-level semuanya memiliki API dan tampilan yang konsisten, dan umumnya Anda tidak harus menemukan kembali roda atau menyalin dan menempel setiap kali Anda membutuhkan tabel baru !
Lihat juga
Untuk informasi penggunaan, tips & trik dan lebih banyak contoh lihat Panduan Topik DataTables.
DataTable¶
Kelas inti yang mendefinisikan struktur tingkat tinggi dari tabel yang diwakili. Contoh:
class MyTable(DataTable):
name = Column('name')
email = Column('email')
class Meta(object):
name = "my_table"
table_actions = (MyAction, MyOtherAction)
row_actions = (MyAction)
Referensi lengkap termasuk di bawah ini:
-
class
horizon.tables.
DataTable
(request, data=None, needs_form_wrapper=None, **kwargs)[sumber]¶ Kelas yang mendefinisikan tabel dengan semua data dan aksi terkait.
-
name
¶ String. Akses read-onlya ke nama yang ditentukan dalam opsi Meta tabel.
-
multi_select
¶ Boolean. Apakah akses read-only ke tabel ini menampilkan kolom untuk kotak centang multi-select atau tidak.
-
data
¶ Akses read-only ke data yang diwakili tabel ini.
-
filtered_data
¶ Akses read-only ke data yang diwakili oleh tabel ini, difilter oleh metode
filter()
dari klass tabelFilterAction
(jika ada disediakan) menggunakan parameter query permintaan saat ini.
-
calculate_row_status
(statuses)[sumber]¶ Mengembalikan nilai boolean yang menentukan status baris keseluruhan.
Ini ditentukan berdasarkan kamus nama kolom untuk pemetaan status yang disahkan.
Secara default, ini menggunakan logika berikut:
Jika ada status
False
, kembalikanFalse
.Jika tidak ada status
False
tetapi ada atauNone
, kembalikanNone
.Jika semua status adalah
True
, kembalikanTrue
.
Ini memberikan perlindungan terbesar terhadap positif palsu (false positives) tanpa memberi bobot pada kolom tertentu.
Parameter
statuses
dilewatkan sebagai kamus memetakan nama kolom ke statusnya untuk memungkinkan fungsi ini ditimpa sedemikian rupa sehingga bobot status satu kolom di atas yang lain jika perilaku yang diinginkan.
-
classmethod
check_handler
(request)[sumber]¶ Tentukan apakah permintaan harus ditangani oleh tabel ini.
-
get_absolute_url
()[sumber]¶ Mengembalikan URL canonical untuk tabel ini.
Ini digunakan untuk atribut tindakan POST pada elemen formulir yang membungkus tabel. Dalam banyak kasus ini juga berguna untuk redirecting setelah tindakan yang berhasil dari table.
Untuk kenyamanan, standarnya adalah nilai ``request.get_full_path () `` dengan string kueri apa saja yang dilepas, misal jalur di mana tabel diminta.
-
get_filter_field
()[sumber]¶ Dapatkan nilai kolom filter yang digunakan untuk filter tipe 'server'.
Ini adalah nilai dari daftar pilihan filter dari tindakan filter
-
get_filter_first_message
()[sumber]¶ Kembalikan pesan yang akan ditampilkan terlebih dahulu di filter.
ketika pengguna perlu memberikan kriteria pencarian terlebih dahulu sebelum memuat data apa pun.
-
get_filter_string
()[sumber]¶ Dapatkan nilai string filter.
Untuk filter tipe 'server' ini disimpan dalam sesi sehingga tetap ada di seluruh beban tabel. Untuk jenis filter lain ini diperoleh dari POST dict.
-
get_full_url
()[sumber]¶ Mengembalikan jalur URL lengkap untuk tabel ini.
Ini digunakan untuk atribut tindakan POST pada elemen formulir yang membungkus tabel. Kami menggunakan metode ini untuk mempertahankan penanda (marker) pagination.
-
get_marker
()[sumber]¶ Mengembalikan pengidentifikasi untuk objek terakhir dalam kumpulan data saat ini.
Nilai kembali akan digunakan sebagai marker/limit-based paging dalam API.
-
get_object_by_id
(lookup)[sumber]¶ Mengembalikan objek data yang ID-nya cocok dengan parameter
loopup
.Objek data dilihat dari dataset tabel dan data yang cocok dengan parameter
lookup
yang ditentukan. Kesalahan akan dimunculkan jika match bukan objek data tunggal.Kami akan mengonversi id objek dan
lookup
ke unicode sebelum perbandingan.Penggunaan
get_object_id()
secara internal.
-
get_object_display
(datum)[sumber]¶ Mengembalikan nama tampilan yang mengidentifikasi objek ini.
Secara default, ini mengembalikan atribut
name
dari objek yang diberikan, tetapi ini bisa diganti untuk mengembalikan nilai lainnya.
-
get_object_id
(datum)[sumber]¶ Mengembalikan pengidentifikasi untuk objek yang baris ini akan wakili.
Secara default ini mengembalikan atribut
id
pada objek yang diberikan, tetapi ini dapat diganti untuk mengembalikan nilai-nilai lainnya.Peringatan
Pastikan bahwa nilai yang dikembalikan adalah nilai unik untuk id jika tidak masalah rendering dapat terjadi.
-
get_pagination_string
()[sumber]¶ Mengembalikan string parameter kueri untuk paginasi ke halaman berikutnya.
-
get_prev_marker
()[sumber]¶ Mengembalikan pengidentifikasi untuk objek pertama dalam kumpulan data saat ini.
Nilai kembali akan digunakan sebagai marker/limit-based paging dalam API.
-
get_prev_pagination_string
()[sumber]¶ Mengembalikan string parameter kueri ke paginasi ke halaman sebelumnya.
-
get_row_status_class
(status)[sumber]¶ Mengembalikan nama kelas css yang ditentukan oleh nilai status.
Nama kelas ini digunakan untuk menunjukkan status baris dalam tabel jika ada
status_columns
telah ditentukan.
-
property
has_actions
¶ Menunjukkan apakah ada tindakan yang tersedia di tabel ini.
Mengembalikan nilai boolean.
-
has_more_data
()[sumber]¶ Mengembalikan nilai boolean yang menunjukkan apakah ada lebih banyak data.
Mengembalikan True jika ada lebih banyak data yang tersedia untuk tabel ini dari sumber (umumnya API).
Metode ini sebagian besar dimaksudkan untuk penggunaan internal, tetapi jika Anda ingin menimpanya untuk memberikan perilaku khusus, Anda dapat melakukannya dengan risiko Anda sendiri.
-
has_prev_data
()[sumber]¶ Mengembalikan nilai boolean yang menunjukkan apakah ada data sebelumnya.
Mengembalikan True jika ada data sebelumnya yang tersedia untuk tabel ini dari sumber (umumnya API).
Metode ini sebagian besar dimaksudkan untuk penggunaan internal, tetapi jika Anda ingin menimpanya untuk memberikan perilaku khusus, Anda dapat melakukannya dengan risiko Anda sendiri.
-
inline_edit_handle
(request, table_name, action_name, obj_id, new_row)[sumber]¶ Penangan redaksi inline.
Menampilkan formulir atau menangani pembaruan melalui POST sel.
-
inline_update_action
(request, datum, cell, obj_id, cell_name)[sumber]¶ Menangani pembaruan dengan POST sel.
-
maybe_handle
()[sumber]¶ Menangani tindakan tabel jika perlu.
Ini menentukan apakah permintaan harus ditangani oleh tindakan apa pun pada tabel ini setelah data dimuat.
-
maybe_preempt
()[sumber]¶ Tentukan apakah permintaan harus ditangani pada tahap sebelumnya.
Itu menentukan permintaan harus ditangani oleh tindakan preemptive pada tabel ini atau dengan pembaruan baris AJAX sebelum memuat data apa pun.
-
property
needs_form_wrapper
¶ Kembali jika tabel ini harus diberikan terbungkus (rendered wrapped) tag ``<form> ``.
Mengembalikan nilai boolean.
-
static
parse_action
(action_string)[sumber]¶ Parsing parameter
action_string
yang dikirim kembali dengan data POST.Secara default ini mem-parsing string yang diformat sebagai
{{ table_name }}__{{ action_name }}__{{ row_id }}
dan mengembalikan masing-masing bagian.row_id
merupakan opsional.
-
render_row_actions
(datum, row=False)[sumber]¶ Merender tindakan yang ditentukan dalam
Meta.row_actions
.Tindakan diberikan dengan menggunakan data baris saat ini. Jika row True, tindakan diberikan dalam deretan tombol. Kalau tidak, mereka akan ditampilkan di kotak dropdown.
-
sanitize_id
(obj_id)[sumber]¶ Override untuk memodifikasi obj_id yang masuk agar cocok dengan API yang ada.
Ini digunakan untuk memodifikasi obj_id yang masuk (digunakan dalam Horizon) ke tipe data atau format yang diharapkan oleh API.
-
Opsi DataTable¶
Opsi berikut dapat didefinisikan dalam kelas Meta
di dalam kelas DataTable
. Contoh:
class MyTable(DataTable):
class Meta(object):
name = "my_table"
verbose_name = "My Table"
-
class
horizon.tables.base.
DataTableOptions
(options)[sumber]¶ Berisi opsi untuk objek
DataTable
.-
name
¶ Nama pendek atau slug untuk table.
-
verbose_name
¶ Nama yang lebih verbose untuk tabel dimaksudkan untuk tujuan tampilan.
-
columns
¶ Daftar objek kolom atau nama kolom. Kontrol pemesanan/tampilan (ordering/display) kolom di dalam tabel.
-
table_actions
¶ Daftar kelas aksi berasal dari kelas
Action
. Aksi ini akan menangani tugas seperti penghapusan massal, dll. untuk beberapa objek sekaligus.
Daftar kelas aksi yang mirip dengan
table_actions
kecuali ini akan ditampilkan dalam menu, bukan sebagai tombol individu. Aksi dari daftar ini akan lebih diutamakan daripada aksi dari daftartable_actions
.
Label dari tombol menu untuk
table_actions_menu
. Defaultnya adalah "Actions" atau "More Actions" bergantung padatable_actions
.
-
row_actions
¶ Daftar yang mirip dengan
table_actions
kecuali disesuaikan untuk ditampilkan untuk setiap baris. Aksi ini bertindak pada objek tunggal pada suatu waktu.
-
actions_column
¶ Nilai Boolean untuk mengontrol rendering kolom tambahan yang berisi berbagai tindakan untuk setiap baris. Default ke
True
jika ada tindakan yang ditentukan dalam opsirow_actions
.
-
multi_select
¶ Nilai Boolean untuk mengontrol rendering kolom tambahan dengan kotak centang untuk memilih beberapa objek dalam tabel. Default ke
True
jika ada tindakan yang ditentukan dalam opsitable_actions
.
-
filter
¶ Nilai Boolean untuk mengontrol tampilan kotak pencarian "filter" dalam tindakan tabel. Secara default ia memeriksa apakah instance dari
FilterAction
ada ditable_actions
.
-
template
¶ String yang berisi templat yang harus digunakan untuk membuat tabel. Default ke
"horizon/common/_data_table.html"
.
-
row_actions_dropdown_template
¶ String yang berisi template yang harus digunakan untuk membuat dropdown tindakan baris. Default ke
"horizon/common/_data_table_row_actions_dropdown.html"
.
-
row_actions_row_template
¶ String yang berisi template yang harus digunakan untuk membuat aksi baris. Default ke
"horizon/common/_data_table_row_actions_row.html"
.
-
table_actions_template
¶ String yang berisi template yang harus digunakan untuk membuat aksi tabel. Default ke
"horizon/common/_data_table_table_actions.html"
.
-
context_var_name
¶ Nama variabel konteks yang akan berisi tabel saat diberikan. Default ke
"table"
.
-
prev_pagination_param
¶ Nama parameter string kueri yang akan digunakan saat membuat halaman mundur (paginating backward) dalam tabel ini. Saat menggunakan beberapa tabel dalam satu tampilan, ini perlu diubah untuk membedakan antara tabel. Default:
"prev_marker"
.
-
pagination_param
¶ Nama parameter string kueri yang akan digunakan saat membuat halaman ke depan dalam tabel ini. Saat menggunakan beberapa tabel dalam satu tampilan, ini perlu diubah untuk membedakan antara tabel. Default:
"marker"
.
-
status_columns
¶ Daftar atau tuple nama kolom yang mewakili "state" dari objek data yang diwakili.
Jika
status_columns
diatur, ketika baris diberikan nilai kolom ini akan digunakan untuk menambahkan kelas tambahan ke baris dalam bentuk"status_up"
atau"status_down"
untuk data baris itu.Status baris digunakan oleh komponen Horizon lain untuk memicu tugas seperti pembaruan AJAX dinamis.
-
cell_class
¶ Kelas yang harus digunakan untuk merender sel dari tabel ini. Pilihan. Default:
Cell
.
-
css_classes
¶ Kelas CSS kustom atau kelas untuk ditambahkan ke
<table>
tag dari tabel yang diberikan, untuk saat tabel tertentu membutuhkan styling khusus. Default:""
.
-
mixed_data_type
¶ Sebuah toggle untuk menunjukkan jika tabel menerima dua atau lebih jenis data. Optional. Default:
False
-
data_types
¶ Daftar tipe data yang akan diterima oleh tabel ini. Default menjadi daftar kosong, tetapi jika atribut
mixed_data_type
diatur keTrue
, maka daftar ini harus memiliki setidaknya satu elemen.
-
data_type_name
¶ Nama atribut untuk menetapkan data yang diteruskan ke tabel saat menerima data campuran. Default:
"_table_data_type"
Boolean untuk mengontrol apakah akan menampilkan footer tabel atau tidak. Default:
True
.
Boolean untuk mengontrol apakah akan menampilkan judul tabel atau tidak. Default:
True
.
-
permissions
¶ Daftar nama izin yang diperlukan tabel ini agar dapat ditampilkan. Default ke daftar kosong (
[]
).
-
FormsetDataTable¶
Anda dapat mengintegrasikan :class: .DataTable dengan Django Formset menggunakan salah satu kelas berikut:
-
class
horizon.tables.formset.
FormsetDataTableMixin
(*args, **kwargs)[sumber]¶ Mixin untuk DataTable untuk mendukung Django Formsets.
Ini berfungsi sama dengan
FormsetDataTable
di bawah, tetapi dapat digunakan untuk menambah subkelas DataTable yang ada.
-
class
horizon.tables.formset.
FormsetDataTable
(*args, **kwargs)[sumber]¶ DataTable dengan dukungan untuk Django Formsets.
Perhatikan bahwa
horizon.tables.DataTableOptions.row_class
danhorizon.tables.DataTaleOptions.cell_class
ditimpa dalam kelas ini, jadi mengaturnya diMeta
tidak berpengaruh.-
formset_class
¶ Kelas yang dibuat dengan
django.forms.formsets.formset_factory
berisi definisi formset untuk digunakan dengan tabel data ini.Kolom yang diberi nama sama dengan field formset akan diganti dengan widget formulir di tabel. Setiap field tersembunyi dari formset juga akan dimasukkan. Field yang tidak disembunyikan dan tidak sesuai dengan kolom apa pun tidak akan disertakan dalam formulir.
-
Table Components¶
-
class
horizon.tables.
Column
(transform, verbose_name=None, sortable=True, link=None, allowed_data_types=None, hidden=False, attrs=None, status=False, status_choices=None, display_choices=None, empty_value=None, filters=None, classes=None, summation=None, auto=None, truncate=None, link_classes=None, wrap_list=False, form_field=None, form_field_attributes=None, update_action=None, link_attrs=None, policy_rules=None, cell_attributes_getter=None, help_text=None)[sumber]¶ Kelas yang mewakili satu kolom dalam
DataTable
.-
transform
¶ String atau callable. Jika ``transform `` adalah string, seharusnya nama atribut pada kelas data yang mendasari yang harus ditampilkan dalam kolom ini. Jika ini callable, itu akan melewati data baris saat ini pada waktu render dan harus mengembalikan isi sel. Wajib.
-
verbose_name
¶ Nama untuk kolom ini yang harus digunakan untuk tujuan tampilan. Default ke nilai
transform
dengan huruf pertama dari setiap kata dikapitalisasi jikatransform
tidak dapat dipanggil, jika tidak maka defaultnya adalah string kosong (""
).
-
sortable
¶ Boolean untuk menentukan apakah kolom ini harus diurutkan atau tidak. Default ke
True
.
Boolean untuk menentukan apakah kolom ini harus ditampilkan atau tidak saat merender tabel. Default:
False
.
-
link
¶ String atau callable yang mengembalikan URL yang akan melilit teks kolom ini sebagai tautan.
-
allowed_data_types
¶ Daftar tipe data yang harus dibuat tautannya. Default adalah daftar kosong (
[]
).Ketika daftar kosong dan atribut
link
bukan None, semua baris di bawah kolom ini akan menjadi tautan.
-
status
¶ Boolean menentukan apakah kolom ini mewakili status (misal "enabled/disabled", "up/down", "active/inactive"). Default:
False
.
-
status_choices
¶ Sebuah tuple dari beberapa tuple yang mewakili kemungkinan nilai data untuk kolom status dan persamaan boolean terkait. Positive state harus sama dengan
True
, negative state harus sama denganFalse
, dan status yang tidak ditentukan harusNone
.Nilai dibandingkan dengan cara case-insensitive.
Contoh (ini juga merupakan nilai default)
status_choices = ( ('enabled', True), ('true', True), ('up', True), ('active', True), ('yes', True), ('on', True), ('none', None), ('unknown', None), ('', None), ('disabled', False), ('down', False), ('false', False), ('inactive', False), ('no', False), ('off', False), )
-
display_choices
¶ Sebuah tuple dari beberapa tuple yang mewakili nilai yang mungkin untuk menggantikan data ketika ditampilkan dalam sel kolom.
-
empty_value
¶ String atau callable untuk digunakan untuk sel yang tidak memiliki data. Default ke string
"-"
.
-
summation
¶ String yang berisi nama metode penjumlahan untuk digunakan dalam pembuatan ringkasan baris untuk kolom ini. Secara default, opsi adalah
"sum"
atau"average"
, yang berperilaku seperti yang diharapkan. Optional.
-
filters
¶ Daftar fungsi (sering kali filter template) untuk diterapkan ke nilai data untuk kolom ini sebelum keluaran. Ini adalah cara pintas yang efektif untuk menulis fungsi
transform
kustom dalam kasus sederhana.
-
classes
¶ Sebuah iterable kelas CSS yang harus ditambahkan ke kolom ini. Contoh:
classes=('foo', 'bar')
.
-
attrs
¶ Sebuah dict string atribut HTML yang harus ditambahkan ke kolom ini. Contoh:
attrs={"data-foo": "bar"}
.
-
cell_attributes_getter
¶ Dapat dipanggil untuk mendapatkan atribut HTML dari sel kolom tergantung pada data. Misalnya, untuk menambahkan deskripsi tambahan atau informasi bantuan untuk data dalam sel kolom (misalnya di panel Image, untuk kolom 'format')
helpText = { 'ARI':'Amazon Ramdisk Image', 'QCOW2':'QEMU' Emulator' } getHoverHelp(data): text = helpText.get(data, None) if text: return {'title': text} else: return {} ... ... cell_attributes_getter = getHoverHelp
-
truncate
¶ Bilangan integer untuk panjang maksimum string dalam kolom ini. Jika panjang data dalam kolom ini lebih besar dari jumlah yang disediakan, data untuk kolom ini akan terpotong dan ellipsis akan ditambahkan ke data yang terpotong. Default untuk
None
.
-
link_classes
¶ Sebuah iterable kelas CSS yang akan ditambahkan ketika teks kolom ditampilkan sebagai tautan. Ini dibiarkan untuk kompatibilitas ke belakang. Tidak lagi mendukung atribut link_attributes. Contoh:
link_classes=('link-foo', 'link-bar')
. Defaults keNone
.
-
wrap_list
¶ Nilai Boolean yang menunjukkan apakah isi sel ini harus dibungkus dengan tag
<ul></ul>
. Berguna dalam hubungannya dengan filter template Djangounordered_list
. Default keFalse
.
-
form_field
¶ Bidang formulir (form field) yang digunakan untuk pengeditan sebaris kolom. forms.Field django dapat digunakan atau form.Widget django dapat digunakan.
Contoh:
form_field=forms.CharField()
. Default keNone
.
-
form_field_attributes
¶ Atribut html tambahan yang akan dirender ke form_field. Contoh:
form_field_attributes={'class': 'bold_input_field'}
. Defaults keNone
.
-
update_action
¶ Kelas yang mewarisi dari tables.actions.UpdateAction, metode update_cell menangani menyimpan data yang diedit sebaris. Metode tables.base.Row get_data perlu dihubungkan ke tabel untuk mendapatkan data. Contoh:
update_action=UpdateCell
. Defaults keNone
.
-
link_attrs
¶ Sebuah dict string atribut HTML yang harus ditambahkan ketika teks kolom ditampilkan sebagai tautan. Examples:
link_attrs={"data-foo": "bar"}
.link_attrs={"target": "_blank", "class": "link-foo link-bar"}
. Defaults untukNone
.
-
policy_rules
¶ Daftar lingkup dan aturan tuple untuk melakukan pemeriksaan kebijakan, komposisi yang adalah (ruang lingkup, aturan)
scope: jenis layanan yang mengatur kebijakan untuk aksi
rule: string yang mewakili aksi yang harus diperiksa
untuk kebijakan yang memerlukan pemeriksaan aturan tunggal, policy_rules akan terlihat seperti:
"(("compute", "compute:create_instance"),)"
untuk kebijakan yang membutuhkan beberapa pemeriksaan aturan, aturan akan terlihat seperti:
"(("identity", "identity:list_users"), ("identity", "identity:list_roles"))"
-
help_text
¶ String teks bantuan sederhana yang ditampilkan di tooltip saat Anda mengarahkan kursor ke ikon bantuan di sebelah nama Column. Default untuk
None
.
-
allowed
(request)[sumber]¶ Tentukan apakah processing/displaying kolom diperbolehkan.
Itu ditentukan berdasarkan permintaan saat ini.
-
get_data
(datum)[sumber]¶ Mengembalikan data tampilan akhir untuk kolom ini dari input yang diberikan.
Nilai kembali akan berupa atribut yang ditentukan untuk kolom ini atau nilai pengembalian metode attr: ~ horizon.tables.Column.transform untuk kolom ini.
-
get_link_url
(datum)[sumber]¶ Mengembalikan nilai akhir untuk properti
link
kolom.Jika
allowed_data_types
kolom ini tidak kosong dan datum memiliki tipe yang ditetapkan, periksa apakah tipe datum ada di daftarallowed_data_types
. Jika tidak, datum tidak akan ditampilkan sebagai tautan.Jika
link
adalah callable, itu akan melewati objek data saat ini dan harus mengembalikan URL. Kalau tidakget_link_url
akan berusaha memanggilreverse
padalink
dengan id objek sebagai parameter. Gagal itu, itu hanya akan mengembalikan nila i``link``.
-
-
class
horizon.tables.
Row
(table, datum=None)[sumber]¶ Merupakan baris dalam tabel.
Ketika pengulangan (iterated), instance
Row
akan menghasilkan masing-masing selnya.Baris mampu memperbarui AJAX, dengan sedikit pekerjaan tambahan:
Properti
ajax
perlu diatur keTrue
, dan subkelas perlu mendefinisikan metodeget_data
yang mengembalikan objek data yang sesuai untuk dikonsumsi oleh tabel (secara efektif pencarian "get" versus pencarian "list" tabel).Interval pembaruan otomatis dapat dikonfigurasi dengan mengatur kunci
ajax_poll_interval
dalam kamusHORIZON_CONFIG
kamus. Default:2500
(diukur dalam milidetik).-
table
¶ Tabel tempat baris ini dimiliki.
-
datum
¶ Objek data yang diwakili baris ini.
-
id
¶ String yang secara unik mewakili baris ini terdiri dari nama tabel dan pengidentifikasi objek data baris.
-
cells
¶ Sel milik baris ini disimpan dalam objek
OrderedDict
. Atribut ini diisi selama instantiasi.
-
status
¶ Nilai Boolean mewakili status baris ini yang dihitung dari nilai-nilai ``status_columns` tabel jika tabel itu ditetapkan.
-
status_class
¶ Mengembalikan kelas css untuk status baris berdasarkan
status
.
-
ajax
¶ Nilai Boolean untuk menentukan apakah pembaruan ajax untuk baris ini diaktifkan.
-
ajax_action_name
¶ String yang digunakan untuk kunci parameter kueri untuk meminta pembaruan AJAX. Secara umum Anda tidak perlu mengubah nilai ini. Default:
"row_update"
.
-
ajax_cell_action_name
¶ String yang digunakan untuk kunci parameter kueri untuk meminta pembaruan sel AJAX. Secara umum Anda tidak perlu mengubah nilai ini. Ini juga digunakan untuk pengeditan sel inline. Default:
"cell_update"
.
-
can_be_selected
(datum)[sumber]¶ Menentukan apakah baris dapat dipilih.
Secara default jika multiselect diaktifkan, kembali True. Anda dapat menghapus kotak centang setelah pembaruan ajax di sini jika diperlukan.
-
get_data
(request, obj_id)[sumber]¶ Mengambil data yang diperbarui untuk baris berdasarkan ID objek yang diberikan.
Harus diimplementasikan oleh subkelas untuk memungkinkan pembaruan AJAX.
-
load_cells
(datum=None)[sumber]¶ Muat data baris dan inisialisasi semua sel di baris.
Ini juga mengatur properti baris yang sesuai yang membutuhkan data baris untuk ditentukan.
Data baris disediakan saat inisialisasi atau sebagai argumen untuk fungsi ini.
Fungsi ini dipanggil secara otomatis oleh :meth: ~ horizon.tables.Row .__ init__ jika argumen
datum
disediakan. Namun, dengan tidak menyediakan data selama inisialisasi fungsi ini memungkinkan untuk kemungkinan pola memuat dua langkah ketika Anda membutuhkan instance baris tetapi belum memiliki data yang tersedia.
-
Actions¶
-
class
horizon.tables.
Action
(*args, **kwargs)[sumber]¶ Mewakili tindakan yang dapat diambil pada data tabel ini.
-
name
¶ Wajib. Nama pendek atau "slug" mewakili tindakan ini. Nama ini tidak boleh diubah saat runtime.
-
verbose_name
¶ Nama deskriptif yang digunakan untuk tujuan tampilan. Default untuk nilai ``name `` dengan huruf pertama dari setiap kata yang dikapitalisasi.
-
verbose_name_plural
¶ Digunakan seperti
verbose_name
dalam kasus di manahandle_multiple
adalahTrue
. Default untukverbose_name
dengan huruf "s" ditambahkan.
-
method
¶ Metode HTTP untuk aksi ini. Default untuk
POST
. Metode lain mungkin atau mungkin tidak berhasil saat ini.
-
requires_input
¶ Nilai Boolean menunjukkan apakah aksi ini dapat dilakukan tanpa masukan tambahan (mis. Id objek). Default ke
True
.
-
preempt
¶ Nilai Boolean menunjukkan apakah aksi ini harus dievaluasi dalam periode setelah tabel dibuat tetapi sebelum data telah dimuat.
Ini dapat memungkinkan aksi yang tidak memerlukan akses ke data tabel penuh untuk melewati semua panggilan API dan pemrosesan yang seharusnya diperlukan untuk memuat tabel.
-
allowed_data_types
¶ Daftar yang berisi tipe data yang diizinkan dari tindakan. Jika tipe datum ada dalam daftar ini, tindakan akan ditampilkan pada baris untuk datum.
Default menjadi daftar kosong (
[]
). Ketika diatur untuk kosong, aksi akan menerima segala jenis data.
-
policy_rules
¶ daftar cakupan (scope) dan aturan tupel (rule tuple) untuk melakukan pemeriksaan kebijakan, yang komposisinya adalah (cakupan, aturan)
scope: jenis layanan yang mengatur kebijakan untuk aksi
rule: string yang mewakili aksi yang harus diperiksa
for a policy that requires a single rule check: policy_rules should look like "(("compute", "compute:create_instance"),)" for a policy that requires multiple rule checks: rules should look like "(("identity", "identity:list_users"), ("identity", "identity:list_roles"))"
Setidaknya satu dari metode berikut harus didefinisikan:
-
single
(self, data_table, request, object_id)¶ Handler untuk aksi satu objek.
-
multiple
(self, data_table, request, object_ids)¶ Handler untuk aksi multi-objek.
-
handle
(self, data_table, request, object_ids)¶ Jika fungsi tunggal dapat bekerja untuk kasus objek tunggal dan multi-objek maka cukup dengan menyediakan fungsi
handle` `akan secara internal rute permintaan ``single
danmultiple
kehandle
dengan panggilan darisingle
sedang diubah menjadi list yang hanya berisi id objek tunggal.
-
-
class
horizon.tables.
LinkAction
(*args, **kwargs)[sumber]¶ Aksi tabel yang hanya berupa tautan daripada bentuk POST.
-
name
¶ Wajib. Nama pendek atau "slug" mewakili tindakan ini. Nama ini tidak boleh diubah saat runtime.
-
verbose_name
¶ String yang akan ditampilkan sebagai teks tautan. (Wajib)
-
url
¶ String atau callable yang memutuskan untuk menggunakan url sebagai target tautan. Anda harus mendefinisikan atribut
url
atau mengganti metodeget_link_url
di kelas.
-
allowed_data_types
¶ Daftar yang berisi tipe data yang diizinkan dari tindakan. Jika tipe datum ada dalam daftar ini, tindakan akan ditampilkan pada baris untuk datum.
Default menjadi daftar kosong (
[]
). Ketika diatur untuk kosong, aksi akan menerima segala jenis data.
-
get_link_url
(datum=None)[sumber]¶ Mengembalikan URL final berdasarkan nilai
url
.Jika
url
dapat dipanggil maka akan memanggil fungsi. Jika tidak, maka akan mencoba untuk memanggilreverse
padaurl
. Jika gagal, itu hanya akan mengembalikan nilaiurl
apa adanya.Ketika dipanggil untuk aksi baris, objek data baris saat ini akan dilewatkan sebagai parameter pertama.
-
-
class
horizon.tables.
FilterAction
(*args, **kwargs)[sumber]¶ Kelas dasar mewakili aksi filter untuk tabel.
-
verbose_name
¶ Nama deskriptif yang digunakan untuk tujuan tampilan. Default untuk nilai ``name `` dengan huruf pertama dari setiap kata yang dikapitalisasi.
-
param_name
¶ String yang mewakili nama parameter permintaan yang digunakan untuk istilah pencarian. Default:
"q"
.
-
filter_type
¶ String yang mewakili jenis filter ini. Jika ini disetel ke
"server"
makafilter_choices
juga harus disediakan. Default:"query"
.
-
filter_choices
¶ Diperlukan untuk filter jenis server. Sebuah tuple tuple yang mewakili opsi filter. Komposisi Tuple harus dievaluasi ke (string, string, boolean, string, boolean), mewakili yang berikut:
Nilai pertama adalah parameter filter.
Nilai kedua mewakili nilai tampilan.
Nilai opsional ketiga menunjukkan apakah atau tidak itu harus diterapkan ke permintaan API sebagai atribut query API. Filter jenis API tidak perlu diperhitungkan dalam metode filter karena API akan melakukan pemfilteran. Namun, jenis filter server pada umumnya perlu dilakukan dalam metode filter. Secara default, atribut ini tidak disediakan (`` False``).
Nilai opsional keempat digunakan sebagai teks bantuan jika disediakan. Standarnya adalah
None
yang artinya tidak ada teks bantuan.Nilai opsional kelima menentukan apakah pilihan ditampilkan kepada pengguna atau tidak. Defaultnya adalah
True
. Ini berguna ketika pilihan perlu ditampilkan secara kondisional.
-
needs_preloading
¶ Jika True, fungsi filter akan dipanggil untuk permintaan GET awal dengan
filter_string` kosong, terlepas dari nilai ``metode
.
-
filter
(table, data, filter_string)[sumber]¶ Menyediakan logika penyaringan yang sebenarnya.
Metode ini harus ditimpa oleh subclass dan mengembalikan data yang difilter.
-
get_param_name
()[sumber]¶ Mengembalikan nama parameter kueri lengkap untuk tindakan ini.
Default untuk
{{ table.name }}__{{ action.name }}__{{ action.param_name }}
.
-
-
class
horizon.tables.
FixedFilterAction
(*args, **kwargs)[sumber]¶ Aksi filter dengan tombol tetap.
-
categorize
(table, rows)[sumber]¶ Ganti untuk memisahkan baris ke dalam kategori.
Agar pemfilteran berfungsi dengan baik pada klien, setiap baris akan membutuhkan kelas CSS yang dimulai dengan 'category-', diikuti oleh nilai tombol tetap.
Kembalikan dict dengan kunci (key) untuk nilai (value) setiap tombol tetap, dan nilai yang merupakan daftar baris dalam kategori itu.
-
filter
(table, images, filter_string)[sumber]¶ Menyediakan logika penyaringan yang sebenarnya.
Metode ini harus ditimpa oleh subclass dan mengembalikan data yang difilter.
Mengembalikan daftar dict yang menggambarkan tombol tetap yang digunakan untuk memfilter.
Setiap item daftar harus berupa tanda dengan tombol-tombol berikut:
text
: Teks untuk ditampilkan pada tombolicon
: Ikon kelas untuk ikon elemen (disisipkan sebelum teks).value
: Nilai dikembalikan ketika tombol diklik. Nilai ini diteruskan kefilter()`
sebagaifilter_string
.
-
-
class
horizon.tables.
BatchAction
(*args, **kwargs)[sumber]¶ Aksi tabel yang mengambil aksi batch pada satu atau lebih objek.
Tindakan ini seharusnya tidak memerlukan input pengguna pada basis per-objek.
-
name
¶ Nama pendek atau "slug" yang mewakili tindakan ini. Harus berupa satu kata seperti "delete", "add", "disable", dll.
-
action_present
()¶ Metode mengembalikan nama aksi sekarang. Ini digunakan sebagai label tindakan.
Metode harus menerima parameter integer/long dan mengembalikan bentuk tampilan nama yang benar-benar terwujud (tergantung pada integer) dan diterjemahkan dalam string atau tuple/list.
Bentuk tampilan yang dikembalikan sangat disarankan untuk menjadi nama aksi lengkap dengan bentuk kata kerja transitif dan kata benda objek. Setiap kata dikapitalisasi dan string harus ditandai sebagai diterjemahkan.
Jika tuple atau daftar - kemudian pengaturan self.current_present_action = n akan mengatur item aktif saat ini dari list(action_present[n])
-
action_past
()¶ Metode mengembalikan nama aksi sebelumnya. Ini biasanya digunakan untuk menampilkan pesan ketika aksi selesai.
Metode harus menerima parameter integer/long dan mengembalikan bentuk tampilan nama yang benar-benar terwujud (tergantung pada integer) dan diterjemahkan dalam string atau tuple/list.
Detailnya sama dengan
action_present
.
-
success_url
¶ Lokasi opsional untuk mengalihkan setelah menyelesaikan aksi penghapusan. Default ke halaman saat ini.
-
help_text
¶ Pesan opsional untuk menyediakan teks bantuan yang sesuai untuk pengguna horizon.
-
action
(request, datum_id)[sumber]¶ Menerima id objek tunggal dan melakukan aksi spesifik.
Metode ini diperlukan.
Beberapa nilai parameter tidak valid:
-
-
class
horizon.tables.
DeleteAction
(*args, **kwargs)[sumber]¶ Aksi tabel yang digunakan untuk melakukan operasi penghapusan pada data tabel.
-
name
¶ Nama pendek atau "slug" yang mewakili tindakan ini. Default untuk 'delete'
-
action_present
()¶ Metode mengembalikan nama aksi sekarang. Ini digunakan sebagai label tindakan.
Metode harus menerima parameter integer/long dan mengembalikan bentuk tampilan nama yang benar-benar terwujud (tergantung pada integer) dan diterjemahkan dalam string atau tuple/list.
Bentuk tampilan yang dikembalikan sangat disarankan untuk menjadi nama aksi lengkap dengan bentuk kata kerja transitif dan kata benda objek. Setiap kata dikapitalisasi dan string harus ditandai sebagai diterjemahkan.
Jika tuple atau daftar - kemudian pengaturan self.current_present_action = n akan mengatur item aktif saat ini dari list(action_present[n])
-
action_past
()¶ Metode mengembalikan nama aksi sebelumnya. Ini biasanya digunakan untuk menampilkan pesan ketika aksi selesai.
Metode harus menerima parameter integer/long dan mengembalikan bentuk tampilan nama yang benar-benar terwujud (tergantung pada integer) dan diterjemahkan dalam string atau tuple/list.
Detailnya sama dengan
action_present
.
-
success_url
¶ Lokasi opsional untuk mengalihkan setelah menyelesaikan aksi penghapusan. Default ke halaman saat ini.
-
help_text
¶ Pesan opsional untuk menyediakan teks bantuan yang sesuai untuk pengguna horizon.
-
Class-Based Views¶
Beberapa tampilan berbasis kelas disediakan untuk membuat bekerja dengan DataTable lebih mudah di UI Anda.
-
class
horizon.tables.
DataTableView
(*args, **kwargs)[sumber]¶ Tampilan generik berbasis kelas untuk menangani pemrosesan DataTable dasar.
Tiga langkah diperlukan untuk menggunakan tampilan ini: atur atribut
table_class
dengan kelas yang diinginkan :class: ~ horizon.tables.DataTable; mendefinisikan metodeget_data
yang mengembalikan seperangkat data untuk tabel; dan tentukan templat untuk atributtemplate_name
.Secara opsional, Anda dapat mengganti metode
has_more_data
untuk memicu penanganan pagination untuk API yang mendukungnya.
-
class
horizon.tables.
MultiTableView
(*args, **kwargs)[sumber]¶ Tampilan generik untuk menangani beberapa kelas DataTable dalam satu tampilan.
Setiap kelas DataTable harus berupa kelas :class: ~ horizon.tables.DataTable atau subkelasnya.
Tiga langkah diperlukan untuk menggunakan tampilan ini: atur atribut
table_classes
dengan tuple dari kelas yang diinginkan :class: ~ horizon.tables.DataTable; mendefinisikan metodeget _ {{table_name}} _ data
untuk setiap kelas tabel yang mengembalikan satu set data untuk tabel itu; dan tentukan templat untuk atributtemplate_name
.
Additional Features¶
Compound sorting¶
In the Horizon dashboard, most tables that display lists of resources (such as instances, volumes, images, etc.) support sorting by clicking on the column headers.
To enable compound sorting, you can hold down the Shift key while clicking on additional column headers. This allows you to sort the table by multiple columns in the order you click them.
An up or down arrow indicator shows next to the column headers you chose to sort by.