[ English | 中文 (简体, 中国) | русский | português (Brasil) | नेपाली | 한국어 (대한민국) | Indonesia | français | español | esperanto | English (United Kingdom) | Deutsch ]
Horizon Tabs dan TabGroups¶
Horizon mencakup satu set komponen yang dapat digunakan kembali untuk membangun antarmuka tab yang diprogram dengan fitur-fitur mewah seperti pemuatan AJAX yang dinamis dan templating dan styling yang hampir tanpa usaha.
Tab Groups¶
Untuk antarmuka tab mana pun, elemen mendasar Anda adalah grup tab yang berisi semua tab Anda. Kelas ini menyediakan API sederhana untuk membangun grup tab dan merangkum semua logika yang diperlukan di belakang layar.
- class horizon.tabs.TabGroup(request, **kwargs)[sumber]¶
Kelas kontainer yang tahu cara mengelola dan merender objek Tab.
- slug¶
URL slug dan pseudo-unique identifier untuk grup tab ini.
- template_name¶
Nama template yang akan digunakan untuk merender grup tab ini. Default:
"horizon/common/_tab_group.html"
- sticky¶
Boolean untuk mengontrol apakah keadaan tab aktif harus disimpan di seluruh permintaan untuk pengguna tertentu. (Penyimpanan status semua dilakukan sisi klien.)
- show_single_tab¶
Boolean untuk mengontrol apakah bilah tab ditampilkan ketika grup tab hanya memiliki satu tab. Default:
False
- param_name¶
Nama parameter permintaan GET yang akan digunakan saat meminta data tab tertentu. Default:
tab
.
- classes¶
Daftar kelas CSS yang harus ditampilkan pada grup tab ini.
- attrs¶
Kamus atribut HTML yang harus dirender ke dalam markup untuk grup tab ini.
- selected¶
Properti hanya baca yang disetel ke instance tab yang saat ini dipilih jika ada, jika tidak
None
.
- active¶
Properti hanya baca yang disetel ke nilai tab aktif saat ini. Ini mungkin tidak sama dengan nilai
selected
jika tidak ada tab tertentu yang diminta melalui parameterGET
.
- get_default_classes()[sumber]¶
Mengembalikan daftar kelas default untuk grup tab.
Defaults ke
["nav", "nav-tabs", "ajax-tabs"]
.
- get_id()[sumber]¶
Mengembalikan id untuk grup tab ini.
Nilai default untuk nilai grup tab
horizon.tabs.Tab.slug
.
- get_selected_tab()[sumber]¶
Mengembalikan tab yang spesifik dengan parameter permintaan GET.
Jika tidak ada parameter permintaan GET, nilai parameter kueri tidak valid, atau tab tidak allowed/enabled, nilai balik fungsi ini adalah None.
- get_tab(tab_name, allow_disabled=False)[sumber]¶
Mengembalikan tab tertentu dari grup tab ini.
Jika tab tidak diizinkan atau tidak diaktifkan, metode ini kembali
None
.Jika tab dinonaktifkan tetapi Anda tetap ingin mengembalikannya, Anda dapat meneruskan
True
ke argumen allow_disabled.
- tabs_not_available()[sumber]¶
Penangan fallback jika tidak ada tab yang diizinkan atau diaktifkan.
Jika tidak ada tab yang diizinkan atau diaktifkan, metode ini adalah penangan mundur (fallback handler). Secara default itu adalah no-op, tetapi itu ada untuk membuat pengalihan atau meningkatkan pengecualian mungkin untuk subclass.
Tabs¶
Tab itu sendiri adalah unit diskrit untuk grup tab, mewakili satu tampilan data.
- class horizon.tabs.Tab(tab_group, request=None, policy_rules=None)[sumber]¶
Antarmuka yang dapat digunakan kembali untuk membuat tab di dalam TabGroup.
- name¶
Nama tampilan untuk tab yang akan dirender sebagai teks untuk elemen tab dalam HTML. Wajib.
- slug¶
URL slug dan id attribute untuk tab. Ini harus unik untuk grup tab tertentu. Wajib.
- preload¶
Menentukan apakah konten tab harus dirender ke dalam HTML halaman saat grup tab diberikan, atau apakah konten harus dimuat secara dinamis saat tab dipilih. Default:
True
.
- classes¶
Daftar kelas CSS yang harus ditampilkan pada tab ini.
- attrs¶
Kamus atribut HTML yang harus dirender ke dalam markup untuk tab ini.
- load¶
Akses read-only untuk menentukan apakah data tab ini harus segera dimuat.
- permissions¶
Daftar nama izin yang diperlukan tab ini untuk ditampilkan. Default ke daftar kosong (
[]
).
- allowed(request)[sumber]¶
Menentukan apakah tab ditampilkan atau tidak.
Tab instance dapat menimpa metode ini untuk menentukan kondisi di mana tab ini tidak boleh ditampilkan sama sekali dengan mengembalikan
False
.
- enabled(request)[sumber]¶
Menentukan apakah tab harus dapat diakses atau tidak.
Misalnya, tab harus dirender ke dalam HTML saat memuat dan merespons acara klik.
Jika sebuah tab mengembalikan
False
darienabled
maka akan mengabaikan nilaipreload
dan hanya merender HTML dari tab setelah diklik.Perilaku default adalah mengembalikan
True
untuk semua kasus.
- get_context_data(request, **kwargs)[sumber]¶
Kembalikan kamus data konteks yang digunakan untuk merender tab.
Wajib.
- get_default_classes()[sumber]¶
Mengembalikan daftar kelas default untuk tab.
Default ke dan kosongkan daftar (
[]
), however namun kelas tambahan dapat ditambahkan tergantung pada kondisi tab sebagai berikut:Jika tab adalah tab aktif untuk grup tab, di mana kelas
"active"
akan ditambahkan.Jika tab tidak diaktifkan, kelas yang kelasnya akan
"disabled"
akan ditambahkan.
- get_id()[sumber]¶
Mengembalikan id untuk tab ini.
Defaults ke
"{{ tab_group.slug }}__{{ tab.slug }}"
.
- get_template_name(request)[sumber]¶
Mengembalikan nama template yang akan digunakan untuk merender tab ini.
Secara default ia mengembalikan nilai atribut
template_name
pada kelasTab
.
- post(request, *args, **kwargs)[sumber]¶
Menangani data POST yang dikirim ke sebuah tab.
Tab instance dapat menimpa metode ini untuk memiliki logika POST tab-specific tanpa mencemari kode TabView.
Perilaku default adalah mengabaikan data POST.
- render()[sumber]¶
Merender tab ke HTML.
Metodee
get_context_data()
dan metodeget_template_name()
dipanggil.Jika
preload
adalahFalse
danforce_load
bukanTrue
, atau :met:`~horizon.tabs.Tab.allowed` atauenabled()
mengembalikanFalse
metode ini akan mengembalikan string kosong.
- class horizon.tabs.TableTab(tab_group, request)[sumber]¶
Kelas Tab yang tahu bagaimana menangani kelas DataTable di dalamnya.
Kelas yang berbeda ini diperlukan karena kompleksitas yang terlibat dalam penanganan pemuatan tab dinamis, pemutakhiran tabel dinamis, dan tindakan tabel semua dalam satu tampilan.
- table_classes¶
Iterable berisi kelas :class: ~ horizon.tables.DataTable yang akan berisi tab ini. Setara dengan atribut :attr: ~ horizon.tables.MultiTableView.table_classes pada
MultiTableView
. Untuk setiap kelas tabel, Anda perlu mendefinisikan metode ``get _ {{table_name}} yang sesuai sepertiMultiTableView
.
- get_context_data(request, **kwargs)[sumber]¶
Menambahkan item
{{ table_name }}_table
ke konteks untuk setiap tabel.Tabel target ditentukan oleh attribute
table_classes
attribute.Jika hanya satu kelas tabel disediakan, variabel konteks
table
shortcut juga ditambahkan yang berisi tabel tunggal.
TabView¶
Ada juga tampilan berbasis kelas generik yang berguna dan sederhana untuk menangani tampilan dari kelas TabGroup
.
- class horizon.tabs.TabView[sumber]¶
Tampilan umum untuk menampilkan
horizon.tabs.TabGroup
.Tampilan ini menangani memilih tab tertentu dan menangani permintaan AJAX dengan anggun.
- tab_group_class¶
Satu-satunya atribut yang diperlukan untuk
TabView
. Itu harus kelas yang mewarisi darihorizon.tabs.TabGroup
.
- class horizon.tabs.TabbedTableView(*args, **kwargs)[sumber]¶
-
- handle_table(table_dict)[sumber]¶
Memuat data tabel berdasarkan table_dict yang diberikan dan menanganinya.
Untuk dict (pustaka) yang diberikan yang berisi
DataTable
dan instanceTableTab
, ia memuat data tabel untuk tab itu dan memanggil metode tabel inimaybe_handle()
. Nilai pengembalian akan menjadi hasil darimaybe_handle
.