我有一个上下文变量,其中包含一个字典,该字典是通过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.5
和Python 2.7
。