【问题标题】:Access tuple in django template在 django 模板中访问元组
【发布时间】:2011-07-10 07:38:21
【问题描述】:
 t=[]
 t.append(("a",1))
 t.append(("b",2))
 t.append(("c",3))
 return render_to_response(t.html,  context_instance=RequestContext(request, {'t':t}))

如何在不使用 for 循环的情况下访问 Django 模板中的 t 值?我尝试了以下方法,但似乎不起作用:

    alert('{{t[a]}}');
    alert('{{t[c]}}');

【问题讨论】:

  • 将值分配给 t 的代码中存在错误。目前它以 TypeError 失败,所以我们无法确定 t 的 real 结构是什么,所以我们无法帮助您。复制粘贴您的视图代码以防止这些错误。

标签: django django-models django-templates django-views


【解决方案1】:

您可以通过dict() function 将您的元组转换为字典:

mydict = dict(t)

然后在模板中,您可以通过 here 之类的键访问项目:

{{ mydict|get_item:item.NAME }}

【讨论】:

    【解决方案2】:

    假设你的视图代码是:

    t=[]
    t.extend([('a',1),('b',2),('c',3)])
    

    (并非如 OP 中所述)

    {{ t.0.0 }} 就像 Python 代码中的 t[0][0]。这应该给你“a”,因为t.0 是列表 t 的第一个元素,它本身就是一个元组,然后另一个 .0 是元组的第一个元素。

    {{ t.0.1 }} 将为 1,以此类推。

    但在您的问题中,您正在创建一个元组并尝试访问它,就好像它是一个字典一样。

    这就是问题所在。

    【讨论】:

    • 我们不能从键(即 a、b、c)访问值吗??
    • 你可以,但你必须让 ta dict: t = {'a':1,'b':2,'c':3},然后 ta 应该可以工作。跨度>
    猜你喜欢
    • 2017-11-24
    • 1970-01-01
    • 2011-10-04
    • 2012-09-06
    • 2016-01-17
    • 1970-01-01
    • 2011-01-05
    • 2021-10-17
    相关资源
    最近更新 更多