如何在Django模板中显示数组值?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Django模板中显示数组值?相关的知识,希望对你有一定的参考价值。

我有以下数组,并希望在模板中显示日期名称。

DAYS = ((0, "Saturday"),
        (1, "Sunday"),
        (2, "Monday"),
        (3, "Tuesday"),
        (4, "Wednesday"))

我可以使用{{ DAYS.2.1 }}显示星期一,但我无法使用{{DAYS.class_weekday.key_value.1}}显示。

我从for循环获得class_weekday.key_value但是当我在那里使用class_weekday.key_value时它没有显示任何东西!

谢谢!

答案

您可以使用

{{ instance.get_day_display }}

在你的模板中。选择显示值而不是数据库值。

如果要显示所有值:

[ x for x, y in DAYS ]

将返回包含天数列表的列表,

另一答案

按照django

https://docs.djangoproject.com/en/1.10/ref/templates/api/#variables-and-lookups

变量和查找

变量名必须包含任何字母(A-Z),任何数字(0-9),下划线(但它们不能以下划线开头)或点。

点在模板渲染中具有特殊含义。变量名中的点表示查找。具体来说,当模板系统遇到变量名中的点时,它会按以下顺序尝试以下查找:

Dictionary lookup. Example: foo["bar"]
Attribute lookup. Example: foo.bar
List-index lookup. Example: foo[bar]

请注意,模板表达式(如{{foo.bar}}中的“bar”将被解释为文字字符串,而不使用变量“bar”的值(如果模板上下文中存在)。

因此,您可以使用自定义过滤器。

您可以制作自定义模板过滤器:

#here, import DAYS
@register.filter
def return_day(i):
    try:
        return DAYS[i][1]
    except:
        return N.A

并在模板中

{{ class_weekday.key_value|return_day }}
另一答案

你想要的是DAYS[2][1] :)

以上是关于如何在Django模板中显示数组值?的主要内容,如果未能解决你的问题,请参考以下文章

如何迭代Django中数组中的所有值

使用 Django 模板作为片段

如何在 Django Summernote 中显示编程片段的代码块?

如何使用 django 在模板中显示默认值?

如何在 Django 中显式重置模板片段缓存?

如何在扩展另一个文件的 django 模板中使用带有动态内容的 html 块片段?