de-vraag
  • Pertanyaan
  • Tag
  • Pengguna
Notifikasi
Imbalan
Registrasi
Setelah Anda mendaftar, Anda akan diberitahu tentang balasan dan komentar untuk pertanyaan Anda.
Gabung
Jika Anda sudah memiliki akun, masuk untuk memeriksa pemberitahuan baru.
Akan ada hadiah untuk pertanyaan, jawaban, dan komentar tambahan.
Lebih
Sumber
Sunting
 disruptive
disruptive
Question

Mengakses kamus dengan kunci di Django template

I'm lewat sebuah kamus dari pandangan saya ke sebuah template. Jadi {"key1":"value1","key2":"value2"} dilewatkan dalam dan perulangan melalui kunci,nilai pasangan baik-baik saja, namun saya've tidak ditemukan solusi yang elegan dari akses langsung di lihat dari kunci tertentu, katakanlah "key1" misalnya bu json.barang-barang yang["key1"]. Saya bisa menggunakan beberapa jika/kemudian pernyataan, tapi saya'd suka melakukan secara langsung apakah ada cara?

Berikut ini adalah perulangan dalam kode html template:

{% for key, value in json.items %} 
  <li>{{key}} - {{value}}</li>
 {% endfor %}
53 2013-11-02T18:08:56+00:00 4
Pemrograman
django
python
json
Solution / Answer
 Alasdair
Alasdair
2 November 2013 в 6:15
2013-11-02T18:15:51+00:00
Lebih
Sumber
Sunting
#22696816

Django template bahasa mendukung mencari kamus tombol sebagai berikut:

{{ json.key1 }}

Lihat template dokumen pada variabel dan lookup.

Template bahasa tidak menyediakan cara untuk menampilkan json[key], di mana key adalah variabel. Anda dapat menulis sebuah template filter untuk melakukan hal ini, seperti yang disarankan dalam jawaban ini Stack Overflow pertanyaan.

 Community
Community
Jawaban edit 23 Mei 2017 в 12:01
75
0
Nandhitha Ramaraj
Nandhitha Ramaraj
14 Januari 2016 в 5:06
2016-01-14T05:06:18+00:00
Lebih
Sumber
Sunting
#22696818

Misalnya, untuk mengirim di bawah ini kamus dict = {&#39;nama&#39;:&#39;myname&#39;,&#39;nomor&#39;:&#39;mynumber&#39;}

views : kembali render(permintaan, mandiri.template_name, {&#39;dict&#39;: dict})

Untuk membuat nilai di html template: <p>{{ dict.nama }}</p>

Mencetak &#39;myname&#39;

 River
River
Jawaban edit 2 Maret 2016 в 10:17
5
0
Deepak Verma
Deepak Verma
6 Mei 2014 в 10:03
2014-05-06T10:03:18+00:00
Lebih
Sumber
Sunting
#22696817

Untuk mengatasi masalah ini anda bisa mencoba sesuatu seperti ini:

def get_context_data(self, **kwargs):
    context['cart'] = []
    cart = Cart()
    cart.name = book.name
    cart.author = book.author.name
    cart.publisher = book.publisher.name
    cart.price = 123
    cart.discount = 12
    cart.total = 100
    context['cart'].append(cart)
    return context

class Cart(object):
    """
    Cart Template class

    This is a magic class, having attributes
    name, author, publisher, price, discount, total, image
    You can add other attributes on the fly
    """
    pass

By this way you can access your cart something like this:
{% for item in cart %}
    <div class="jumbotron">
    <div>
    <img src="{{item.image}}" />
    <div class="book_name"> <b>{{item.name}}</b></div>
    <div class="book_by"><i>{{item.author}}</i></div>
    <span>Rs. {{item.price}}</span> <i>{{item.discount}}% OFF </i>
    <b>Rs. {{item.total}}</b>
{% endfor %}
Edouard Thiel
Edouard Thiel
Jawaban edit 8 November 2015 в 7:46
4
0
Micah Walter
Micah Walter
28 Juni 2018 в 7:32
2018-06-28T19:32:13+00:00
Lebih
Sumber
Sunting
#22696819

Seperti @Alasdair menunjukkan, anda dapat menggunakan template filter. Di templatetags directory, membuat file berikut dict_key.py:

from django.template.defaultfilters import register

@register.filter(name='dict_key')
def dict_key(d, k):
    '''Returns the given key from a dictionary.'''
    return d[k]

Kemudian, dalam HTML anda, anda dapat menulis:

{% for k in json.items %} 
  <li>{{ k }} - {{ json.items|dict_key:k }}</li>
{% endfor %}
4
0
Related communities 7
Python Indonesia
Python Indonesia
24 631 pengguna
Programmer Python Indonesia. Group ini dikelola oleh sejumlah admin. Baca pesan tersemat / pinned message: https://t.me/pythonID/217588
Buka telegram
Django Indonesia
Django Indonesia
4 680 pengguna
Web Framework For Perfectionists With Deadlines
Buka telegram
Indonesian Python Warriors
Indonesian Python Warriors
1 462 pengguna
Di grup ini tidak ada kewajiban untuk menggunakan username dan foto. Yang tidak boleh adalah spamming. Gak boleh baper, kalau nanya yang bener, eror jangan difoto pake HP, gunakan screenshot, code copas ke pastebin.com lalu share link ke sini.
Buka telegram
Python-ID Jogja
Python-ID Jogja
962 pengguna
Buka telegram
BASIC PYTHON INDONESIA
BASIC PYTHON INDONESIA
220 pengguna
Buka telegram
Python Newbie Indonesia
Python Newbie Indonesia
181 pengguna
Peraturan grup Python Newbie 🌻Dilarang spam 🌻Dilarang menggunakan bahasa kasar 🌻Dilarang beriklan di grup tanpa seizin admin Beberapa video dasar python dapat diliat melalui channel youtube juan aditya Jangan lupa untuk subscribe ya🙏
Buka telegram
Tambahkan pertanyaan
Kategori
Semua
Teknologi
Budaya / Rekreasi
Kehidupan / Seni
Ilmu Pengetahuan
Profesional
Bisnis
Pengguna
Semua
Baru
Populer
1
Галина Утяшова
Terdaftar 20 jam yang lalu
2
Asilbek Qadamboyev
Terdaftar 3 hari yang lalu
3
Akshit Mehta
Terdaftar 6 hari yang lalu
4
me you
Terdaftar 1 minggu yang lalu
5
Никита иванов
Terdaftar 1 minggu yang lalu
ID
JA
KO
RU
© de-vraag 2022
Sumber
stackoverflow.com
di bawah lisensi cc by-sa 3.0 dengan atribusi