在django模板中访问元组

发布于 2024-10-21 04:35:29 字数 334 浏览 1 评论 0原文

 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=[]
 t.append(("a",1))
 t.append(("b",2))
 t.append(("c",3))
 return render_to_response(t.html,  context_instance=RequestContext(request, {'t':t}))

How can I access a value of t in Django templates without using a for loop? I have tried the following and it doesn't seem to work:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

请恋爱 2024-10-28 04:35:29

假设您的视图代码是:(

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,依此类推。

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

这就是问题所在。

Assuming your view code is:

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

(and not as stated in the OP)

{{ t.0.0 }} is like t[0][0] in Python code. This should give you "a", because t.0 is the first element of the list t, which itself is a tuple, and then another .0 is the tuple's first element.

{{ t.0.1 }} will be 1, and so on.

But in your question you are creating a tuple and trying to access it as if it is a dict.

That's the problem.

£冰雨忧蓝° 2024-10-28 04:35:29

您可以通过 dict() 函数将元组转换为 dict:

mydict = dict(t)

然后在模板中,您可以按键访问项目,例如 此处

{{ mydict|get_item:item.NAME }}

You can convert your tuple to dict via dict() function:

mydict = dict(t)

And then in template you can access items by key like here:

{{ mydict|get_item:item.NAME }}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文