我无法从.html文件访问在views.py中声明的字典值。
几个小时以来,我一直在尝试使用以前的几个线程,但我看不到它。我确定我做错了什么。
views.py
def test(request):
now = datetime.now()
day = now.strftime("%Y-%m-%d")
year = now.strftime("%Y")
month = now.strftime("%m")
context = {
"content": [day,year,month],
"object_list": queryset
}
return render(request, "test.html", context)
filter.py
from django.template.defaulttags import register
@register.filter(name='get_item')
def get_item(dictionary, key):
return dictionary.get(key)
test.html
{% load filtres_dictionary %}
{% with content.get_item.day as content.day %}
<p>{{ content|get_item:content.day }}</p>
{% endwith %}
我当前收到以下错误消息,我想得到的是:2019-06-13。在我的网站上打印。
/ test /处的VariantDoesNotExist 无法在['2019-06-13','2019','06']中查找关键[天]
答案 0 :(得分:0)
以上不是一个字典值。这是一个列表。但是,您可以通过 index 来访问列表元素,例如:
<p>{{ content.0 }}</p>
{% with content.get_item.day as content.day %}
行没有多大意义:您在这里似乎为假设词典指定了一个不存在的值。
话虽如此,但我不认为使用 list 是个好主意。实际上,您实际上最好使用字典,例如:
context = {
'content': {
'day': day,
'month': month,
'year': year
},
'object_list': queryset
}
然后您可以在模板中以以下方式访问此文件:
<p>{{ content.day }}</p>
注意:这里使用的
get_item
模板过滤器在键本身是可变的时很有用,在这种情况下,您可以传递任意键。在这种情况下不是 。