Soru Django şablonu içinde dizinine göre referans listesi öğesi?


Bu basit olabilir, ama etrafa baktım ve bir cevap bulamadım. Bir Django şablonundaki listedeki tek bir öğeye başvuruda bulunmanın en iyi yolu nedir?

Başka bir deyişle eşdeğerini nasıl yapabilirim {{ data[0] }} şablon dili içinde?

Teşekkürler.


76
2018-01-10 20:27


Menşei




Cevaplar:


Benziyor {{ data.0 }}. Görmek Değişkenler ve aramalar.


125
2018-01-10 20:29



Sadece buldum. Evet, izin var ve işe yarıyor. Teşekkürler! - user456584
Sinir bozucu şey söyleyemem. {{ data.foo }}, nerede foo bir indeks değeri olan ve bir özellik adı olmayan bir değişkendir. - Mike DeSimone
@MikeDeSimone cevabımı gör stackoverflow.com/a/29664945/2714931 - WeizhongTu
Özel bir etiket oluşturmaya istekliyseniz çok daha fazlasını yapabilirsiniz. Burada sadece yerleşik şeyler ile çalışıyoruz. - Mike DeSimone
Bağlantı artık çalışmıyor, bunu deneyin: docs.djangoproject.com/en/1.10/ref/templates/api/... - Speccy


Daha iyi bir yol: özel şablon filtresi: https://docs.djangoproject.com/en/dev/howto/custom-template-tags/

Şablonlardaki x [x] 'i almak gibi:

şablonda

{% load index %}
{{ List|index:x }}

templatetags / index.py

from django import template
register = template.Library()

@register.filter
def index(List, i):
    return List[int(i)]

Eğer List = [['a','b','c'], ['d','e','f']], kullanabilirsiniz {{ List|index:x|index:y }} şablon almak için List[x][y]

"For" ile iyi çalışıyor

{{ List|index:forloop.counter0 }}

Test edildi ve iyi çalışıyor ^ _ ^


39
2018-04-16 03:41



Şablon Etiketleri uygulamasını öğrenmek için en basit açıklamalardan biri! - vanguard69
Bu harikaydı! Fakat {{List | index: x}} formatıyla, normalde bir nokta kullanacağım değerlere nasıl erişebilirim? {{(Liste | index: x) .name}} açıkçası çalışmıyor. Teşekkür ederim! - JTFouquier
Tam olarak aradığım şey. Teşekkür ederim! - grantathon


{{ data.0 }} çalışmalı.

Yazdığını yazalım data.obj django çalışır data.obj ve data.obj(). Çalışmıyorlarsa, dener data["obj"]. Senin durumunda data[0] olarak yazılabilir {{ data.0 }}. Ama çekmenizi tavsiye ederim data[0] görünümde ve ayrı bir değişken olarak gönderir.


21
2018-01-10 20:33





@ jennifer06262016, nesneleri bir django Queryset içine döndürmek için kesinlikle başka bir filtre ekleyebilirsiniz.

@register.filter 
def get_item(Queryset):
    return Queryset.your_item_key

Bu durumda, bazı sözlük nesnelerine erişmek için şablonunuza {{Queryset | index: x | get_item}} gibi bir şey yazabilirsiniz. Benim için çalışıyor.


1
2018-04-15 07:23