Python Django模板列表的第一个元素
我把字典传给Django模板 字典和模板如下所示-Python Django模板列表的第一个元素,python,django,django-templates,django-filters,Python,Django,Django Templates,Django Filters,我把字典传给Django模板 字典和模板如下所示- lists[listid] = {'name': l.listname, 'docs': l.userdocs.order_by('-id')} {% for k, v in lists.items %} <ul><li>Count: {{ v.docs.count }}, First: {{ v.docs|first }}</li></ul> {% endfor %} lists[l
lists[listid] = {'name': l.listname, 'docs': l.userdocs.order_by('-id')}
{% for k, v in lists.items %}
<ul><li>Count: {{ v.docs.count }}, First: {{ v.docs|first }}</li></ul>
{% endfor %}
lists[listid]={'name':l.listname,'docs':l.userdocs.order_by('-id')}
{lists.items%}
- 计数:{{v.docs.Count},第一:{{v.docs|First}
{%endfor%}
现在docs
是userdocs
类型的列表。i、 e.就是一个例子。所以first
filter会返回这个实例。从这里我需要提取它的id
。我该怎么做
我试过了
{{v.docs | first}}.id
和其他各种无效的试验。您可以使用{%with%}
模板标签来实现这类功能
{% with v.docs|first as first_doc %}{{ first_doc.id }}{% endwith %}
我不知道这是否有用 您需要的是一个iterable(v.docs)的第一个值,并且您正在迭代另一个封装iterable(list)的值 对于计数,我也会这样做,但对于第一个元素。。 我将逐个迭代v.docs并通过 内环
{% for doc in v.docs %}
{% if v.docs | first %}
<li>doc</li>
{% endif %}
{% endfor %}
{%for v.docs%中的文档]
{%if v.docs | first%}
医生
{%endif%}
{%endfor%}
注意:第一个过滤器应用于v.docs,而不是doc。
是 啊它涉及另一个循环:(您可以尝试以下方法:
{{ v.docs.0 }}
如arr.0
你可以通过索引(
0
,1
,2
,等等)来获取元素。四处搜索并找到了一个替代方法,告诉我这是否是一个糟糕的做法-{{v.movies.0.doc.id}
谢谢你的一般回答。我需要第一个和第二个;)您必须将v.docs | first
更改为v.docs | first
,因为出现以下错误:无法解析剩余部分:“|”from“|”