有没有一种方法可以使用一本词典的值来搜索另一本词典?

2024-09-28 22:01:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我设置了一个Django视图,在那里我根据给定字典上有多少卡片来生成一些卡片。每一张卡都包含不同的信息,这取决于他们是谁,这些信息是静态的,并且存储在本地。我有主字典设置的方式允许我在所有卡片上循环,但我不知道如何获得卡片的单个数据。你知道吗

可能愚蠢地试图使用字典中的一个值来遍历另一个。可能我的字典结构是我的拦路虎,但我不能想出任何其他方法。你知道吗

你知道吗视图.py你知道吗

位置-->;URL变量

卡片-->从数据库中提取的数据

VLAN—从本地json文件提取的数据

def home_view(request, location):
    cards = Site.objects.get(sites=location.upper()).site_cards.all().values('cards')
    cards_dict = {c: c for c in [d['cards'] for d in list(cards)]}
    vlans = json.load(open('allvendors/static/json/vlans.json'))
    selected_site_vlans = vlans[location]
    home = {
        "site": location,
        "cards": cards_dict,
        "vlans": selected_site_vlans
    }
    return render(request, 'allvendors/home.html', {"home": home})

你知道吗主页.html你知道吗

你知道吗主页.vlan..vlan-->;愚蠢的尝试在一个dict上使用另一个dict上的密钥。请参阅下面传递给模板的数据结构。你知道吗

{% 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.card.vlan }}
                        </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 %}

{
   'site':'A',
   'cards':{
      'networkA':'networkA',
      'networkB':'networkB'
   },
   'vlans':{
      'networkA':{
         'vlan':'101',
      },
      'networkB':{
         'vlan':'102',
      }
}

每个卡都应该显示与之对应的VLAN,因此名为networkA的卡应该显示在下面的值中vlan.networkA.vlan,但我想不出怎么做。欢迎任何帮助:)


Tags: 数据divjsonhome字典sitelocationcard
1条回答
网友
1楼 · 发布于 2024-09-28 22:01:34

解释得太复杂了,我不知道我是否理解,但这里有一个尝试:

vlans = json.load(open('allvendors/static/json/vlans.json'))
cards_dict = {c: vlans[location][c] for c in [d['cards'] for d in list(cards)]}
home = {
    "site": location,
    "cards": cards_dict,
}    

和模板中的{{ card.vlan }}。你知道吗

相关问题 更多 >