无法在Django模板中正确引用字典上下文对象

时间:2015-10-18 19:20:36

标签: python django django-templates

我有一个上下文变量,其中包含一个字典,该字典是通过defaultdict(list)创建的。

字典的解剖结构如下:

eachlink = {'seen':[object1, object2, None], 'unseen':[None, object2, object3], 'time':[timeobject1, None, timeobject3]}

'see','看不见'和'时间'是包含对象的列表(对象也可以是None)。

此词典将传递给 views.py

中的上下文对象
context["eachlink"] = eachlink

在我的模板中,我正在尝试使用上下文变量eachlink中包含的数据,但无法使点符号起作用。例如。以下内容不起作用(for loop永远不会运行,if statement永远不会发生:

{% for object in eachlink %}
{% if object.seen %}
do something
{% endif %}
{% if object.unseen %}
do something else
{% endif %}
{% if object.time %}
do something else
{% endif %}
{% endfor %}

我也试过以下,但没有用:

{% for seen, unseen, time in eachlink %}
{% if seen %}
do something
{% endif %}
{% endfor %}

在上面,调试让我发现'看到'包含字母'看到',看不见包含字母'看不见',时间包含字母'时间'。显然,字典中的列表未被引用。我已经看到有关使用eachlink.items代替eachlink的SO的建议,我也看到了编写自定义templatetags的建议。经过多个小时的尝试后,这两种方法都不适合我的情况。

我通过 views.py 打印了我的字典;它的构造很好。在模板中访问它仍然是一个挑战。我该怎么办?我应该采用另一种方法在我的上下文变量中组织这些数据吗?建议请。

我正在使用Django 1.5Python 2.7

0 个答案:

没有答案