传递给模板的字典不会产生任何值。你知道吗
我尝试过各种访问字典值的方法,甚至自定义过滤器,但都没有成功。你知道吗
def home_view(request, location):
cards = Site.objects.get(sites=location.upper()
).site_cards.all().values('cards')
vlans = json.load(open('allvendors/static/json/vlan.json'))
vlans_location = vlans[location]
home = {
"site": location,
"cards": cards,
"vlans": vlans_location,
}
return render(request, 'allvendors/home.html', {"home": home})
from django import template
register = template.Library()
@register.filter(name='lookup')
def lookup(dictionary, key):
return dictionary[key]
<QuerySet [{'cards': 'A'}, {'cards': 'B'}, {'cards': 'C'}, {'cards': 'D'}]>
{
'A':{
'vlan':'101'
},
'B':{
'vlan':'102'
},
'C':{
'vlan':'103'
},
'D':{
'vlan':'104'
}
}
{% load allvendors_filters %}
{% for card in home.cards %}
<div class="card mb-4 box-shadow shadow">
<div class="card-header">
<h4 id="whatfor" class="my-0 font-weight-normal">{{ card|title }}</h4>
</div>
<div class="card-body">
<h1 class="card-title pricing-card-title">Vlan:
<small class="text-muted">
<a href="#" target="_blank">
{{ home.vlans|lookup:card.cards }}
</a>
</small>
</h1>
<a class="text-decoration-none" href="{{ card|lower }}/">
<button id="seedata" type="button" class="btn btn-lg btn-block btn-outline-primary">See
Database</button>
</a>
</div>
</div>
{% endfor %}
问题本身就是{{card}},循环为每个卡1到3创建一个div,但是{{卡.vlan}}不会输出任何内容。你知道吗
我觉得我访问它的错误,但我不知道为什么或如何。你知道吗
欢迎任何指点。你知道吗
尝试重新考虑一下,使用了一个自定义过滤器:{主页.vlan|查找:card.cards}}为对应卡的值获取字典,字典本身是用html编写的:
{'vlan': '101'} written in Card A
{'vlan': '102'} written in Card B
...and so on
但如果尝试访问vlan,则会失败,并返回{主页.vlan|查找:card.cards.vlan}}-->;在“A”中查找键[vlan]失败
在下面选定的答案中。你知道吗
谢谢
这里有一个简单的答案,我认为你的
for card in home.cards
是在迭代dict键,如果你也想得到这个键,就用for card in home.cards.values
或for card_key, card_dict in home.cards.items
试试。你知道吗数据:
Jinja迭代:
注意: 确保你有dict项目的列表。你知道吗
相关问题 更多 >
编程相关推荐