Bagaimana cara mengakses elemen array di templat Django?
167
Saya mendapatkan array yang arrditeruskan ke template Django saya. Saya ingin mengakses elemen individual dari array di array (mis. arr[0], arr[1]Dll) alih-alih melalui seluruh array.
Apakah ada cara untuk melakukan itu di template Django?
Ingat bahwa notasi titik dalam templat Django digunakan untuk empat notasi yang berbeda dalam Python. Dalam sebuah templat, foo.bardapat berarti salah satu dari:
Itu mencoba mereka dalam urutan ini sampai menemukan kecocokan. Jadi foo.3akan membuat Anda daftar indeks Anda karena objek Anda bukan dict dengan 3 sebagai kunci, tidak memiliki atribut bernama 3, dan tidak memiliki metode bernama 3.
Bukankah yang pertama dan terakhir lebih seperti foo['bar']?
Bob Stein
2
Tampaknya tidak ada cara untuk mengakses item daftar menggunakan indeks variabel :(
Vicky Chijwani
Setuju dengan @VickyChijwani: opsi keempat di atas tidak valid. Templat Django tampaknya tidak melakukan pencarian daftar-indeks dengan variabel
ehacinom
@hiyume Bagaimana cara mengatasinya?
Csaba Toth
Saya tidak mengerti bahwa saya tidak dapat menemukannya di dokumentasi resmi. Bisakah Anda memberikan sumber untuk posting itu? Saya juga kagum bagaimana jawaban ini tidak diterima saat ini.
cara mencetak dinamis seperti ex: arr.variablename
Nandha Kumar
Apakah ada cara untuk melakukan ini tanpa angka ajaib? Dengan kata lain untuk "beri nama", 0,1 .2 dll ...? Seperti array ["nama depan"], array ["nama belakang"] dll.
cyberjoac
@cyberjoac dalam hal ini gunakan dict. Pada tampilan: d = {'first_name': 'foo', 'last_name': 'bar'}. Dalam templat {{d.first_name}} akan berfungsi dengan baik.
Ofri Raviv
31
Anda dapat mengakses elemen urutan dengan arr.0 arr.1 dan seterusnya. Lihat bab Sistem template Django dari buku Django untuk informasi lebih lanjut.
arr.0
,,arr.1
... Solusi lain: tulis tag templat Anda sendiriarr|array_item: "0"
atau sesuatu seperti ini.Jawaban:
Ingat bahwa notasi titik dalam templat Django digunakan untuk empat notasi yang berbeda dalam Python. Dalam sebuah templat,
foo.bar
dapat berarti salah satu dari:Itu mencoba mereka dalam urutan ini sampai menemukan kecocokan. Jadi
foo.3
akan membuat Anda daftar indeks Anda karena objek Anda bukan dict dengan 3 sebagai kunci, tidak memiliki atribut bernama 3, dan tidak memiliki metode bernama 3.sumber
foo['bar']
?dll.
sumber
Anda dapat mengakses elemen urutan dengan arr.0 arr.1 dan seterusnya. Lihat bab Sistem template Django dari buku Django untuk informasi lebih lanjut.
sumber
ketika Anda
render
meminta toucoctext
beberapa informasi: untuk exampel:Anda dapat mengaksesnya di template seperti ini:
for variabels :
for array :
Anda juga dapat memberi nama objek array
views.py
dan sepuluh menggunakannya seperti:jika ada masalah lain saya ingin membantu Anda
sumber