gpt4 book ai didi

python - Django 遍历列表中的字典并在模板中显示数据

转载 作者:行者123 更新时间:2023-11-28 21:56:53 24 4
gpt4 key购买 nike

你好我是新手程序员

def calculateMark(mobile_a, mobile_b):
mobiles_list = [mobile_a, mobile_b]

for mobile in mobiles_list:
dimension = TechSpecificationAdd.objects.filter(mobile_name = mobile).values(dimension)
body_material = TechSpecificationAdd.objects.filter(mobile_name = mobile).values(body_material)
weight = TechSpecificationAdd.objects.filter(mobile_name = mobile).values(weight)

tech_variables = {'dimension' : dimension, 'body_material' : body_material, 'weight' : weight}

return render_to_response('compare.html', tech_variables)

我有这样的东西,一个移动列表,从数据库中分配值,然后在字典中分配变量。我正在考虑遍历字典并在模板中显示值。但问题是我必须制作模板以在一页中显示两个手机信息以进行比较。如何在模板中一次显示两个手机信息?我认为该模板将始终显示一部手机的信息。其实我有点卡在这里,我不知道现在该怎么办。我一开始就错了吗?我需要字典吗?如何迭代或分配要在模板中显示的值。还是我在问一个愚蠢的问题?

最佳答案

改进 Simeon 的(假设一个有效的 urls.py),

from django.shortcuts import render

def calculateMark(request, mobile_a, mobile_b):
mobiles_list = [mobile_a, mobile_b]

results = []
for mobile in mobiles_list:
record = TechSpecificationAdd.objects.filter(mobile_name=mobile).values('dimension', 'body_material', 'weight')
results += record

return render(request, 'compare.html', {'data': results})

任何注释:

  • View 函数必须将 request 作为第一个参数。
  • 过滤总是返回列表(即使只有结果 1),所以 {{ record.dimension }}{{ record.body_material }}{ { record.weight }} 每个都会​​成为列表。这就是为什么我们使用 results += record 而不是 results.append(dict) 的原因,这样 {{ record }} 将被适本地呈现。
  • 使用render_to_response 渲染需要RequestContext,Django 提供django.shortcuts.render 来简化模板渲染。

关于python - Django 遍历列表中的字典并在模板中显示数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20767508/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com