Python Django:can';t访问模板中字典的值
我有一个具有以下代码的视图:Python Django:can';t访问模板中字典的值,python,django,Python,Django,我有一个具有以下代码的视图: @login_required def grouping(request, project_id): groups = {} order = {} # Bind parameters to variables and return a 404 if one is considered incorrect for i in range(1, 5): if request.GET.get('filter%i' % i,
@login_required
def grouping(request, project_id):
groups = {}
order = {}
# Bind parameters to variables and return a 404 if one is considered incorrect
for i in range(1, 5):
if request.GET.get('filter%i' % i, None) is not None:
try:
order[i] = int(request.GET.get('filter%i' % i, None))
except ValueError:
return projects_overview(request, 'Incorrect filter parameters passed', 404)
if order == {}:
return projects_overview(request, 'Incorrect filter parameters passed', 404)
original_properties = []
# Put all of the originally passed properties in a list
for key in order:
property = Property.objects.get(pk=order[key])
original_properties.append(property)
# Get the corresponding category and project
category = original_properties[0].category
project = Project.objects.get(pk=project_id)
objects = Object.objects.filter(project=project, type__category=category)
# Group the objects with the same property values together
for object in objects:
properties = object.property_set.all().order_by('name')
values = []
for property in properties:
if property.original_property in original_properties:
values.append(property.value)
values_json = json.dumps(values)
if groups.get(values_json) is None:
groups[values_json] = []
groups[values_json].append(object)
print(groups)
return render(request, 'dashboard/groups.html', {'groups': groups, 'project': project,
'function_create_form': ObjectForm(project_id=project_id)})
问题在于变量groups
,它返回如下内容:
{'["a", "b", "c"]': [<Object: Object 3>, <Object: Object 4>], '["q", "w", "e"]': [<Object: Object 5>]}
这给了我钥匙,这很有意义:
["a", "b", "c"] ["q", "w", "e"]
但实际上,我只关心附在钥匙上的清单。因此,我:
{% for key, group in groups %}
{{ key }}
{{ group }}
{% endfor %}
这给了我以下错误:
需要2个值才能在for循环中解包;有15个。
所以我尝试了这个,但这只是给了我一个字符一个字符的关键,就像我已经预料到的:
{% for group in groups %}
{% for object in group %}
{{ object }}
{% endfor %}
{% endfor %}
我以前从未遇到过这个问题,这与我构建字典的方式有关吗?对于Python 2.x:
for key, value in groups.iteritems():
{{ key }}
{{ value }}
对于Python 3.x:
for key, value in groups.items():
{{ key }}
{{ value }}
对于Python2.x:
for key, value in groups.iteritems():
{{ key }}
{{ value }}
对于Python 3.x:
for key, value in groups.items():
{{ key }}
{{ value }}
要循环字典中的键值对,请使用
items
方法
{% for key, group in groups.items %}
{{ key }}
{{ group }}
{% endfor %}
如果只需要这些值,请使用值:
{% for group in groups.values %}
{{ group }}
{% endfor %}
要循环字典中的键值对,请使用items
方法
{% for key, group in groups.items %}
{{ key }}
{{ group }}
{% endfor %}
如果只需要这些值,请使用值:
{% for group in groups.values %}
{{ group }}
{% endfor %}