Bu basit olabilir ama etrafa baktım ve bir cevap bulamadım. Bir Django şablonundan bir listedeki tek bir öğeye başvurmanın en iyi yolu nedir?
Başka bir deyişle {{ data[0] }}
, şablon dilinin eşdeğerini nasıl yaparım ?
Teşekkürler.
Bu basit olabilir ama etrafa baktım ve bir cevap bulamadım. Bir Django şablonundan bir listedeki tek bir öğeye başvurmanın en iyi yolu nedir?
Başka bir deyişle {{ data[0] }}
, şablon dilinin eşdeğerini nasıl yaparım ?
Teşekkürler.
Yanıtlar:
Gibi görünüyor {{ data.0 }}
. Değişkenler ve aramalara bakın .
Daha iyi bir yol: özel şablon filtresi: https://docs.djangoproject.com/en/dev/howto/custom-template-tags/
şablonlarda my_list [x] al gibi:
şablonda
{% load index %}
{{ my_list|index:x }}
templatetags / index.py
from django import template
register = template.Library()
@register.filter
def index(indexable, i):
return indexable[i]
eğer my_list = [['a','b','c'], ['d','e','f']]
kullanabileceğiniz {{ my_list|index:x|index:y }}
almak için şablondamy_list[x][y]
"For" ile sorunsuz çalışıyor
{{ my_list|index:forloop.counter0 }}
Test edildi ve iyi çalışıyor ^ _ ^
{% for id in article_details.heading.contents.article_ids %} {% if id.type == 'DOI' %} {{ article_details.heading.contents.article_ids.forloop.counter0.value }} {% endif %} {% endfor %}
{{ data.0 }}
çalışmalı.
Diyelim ki data.obj
django denemeleri yazdınız data.obj
ve data.obj()
. Çalışmazlarsa dener data["obj"]
. Sizin durumunuzda data[0]
olarak yazılabilir {{ data.0 }}
. Ancak data[0]
görünümü çekip ayrı değişken olarak göndermenizi tavsiye ederim .
@ jennifer06262016, bir django Sorgu Kümesi içindeki nesneleri döndürmek için kesinlikle başka bir filtre ekleyebilirsiniz.
@register.filter
def get_item(Queryset):
return Queryset.your_item_key
Bu durumda, bir sözlük nesnesine erişmek için şablonunuza şöyle bir {{Sorgu | dizin: x | get_item}} yazarsınız. Benim için çalışıyor.
{{ data.foo }}
neredefoo
olduğunu söyleyemem .