Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django模板从另一个字典键访问字典_Python_Django - Fatal编程技术网

Python Django模板从另一个字典键访问字典

Python Django模板从另一个字典键访问字典,python,django,Python,Django,看起来很简单,但我正在迭代一个字典,从该字典的id键访问另一个字典。示例: {% for choice in choices %} {{ percentages[choice.id] }} {% endfor %} 例如: for choice in choices: percentages[choice.id] 虽然我得到了一个Django错误: 无法分析剩余部分:'[choice.id]'来自'percentage[choice.id]' 我想这可能有用。我尝试研究并将[choi

看起来很简单,但我正在迭代一个字典,从该字典的
id
键访问另一个字典。示例:

{% for choice in choices %}
  {{ percentages[choice.id] }}
{% endfor %}
例如:

for choice in choices:
  percentages[choice.id]
虽然我得到了一个Django错误:

无法分析剩余部分:'[choice.id]'来自'percentage[choice.id]'


我想这可能有用。我尝试研究并将
[choice.id]
更改为
|get:choice.id
作为潜在的解决方案,但这也给了我另一个毫无帮助的错误。

您无法从django模板访问字典索引。您必须像这样注册自定义模板标记

@register.filter
def from_dict(d, k):
    return d[k]
{% for choice in choices %}
  {{ percentages|from_dict:choice.id }}
{% endfor %}
像这样使用它

@register.filter
def from_dict(d, k):
    return d[k]
{% for choice in choices %}
  {{ percentages|from_dict:choice.id }}
{% endfor %}

无法从django模板访问字典索引。您必须像这样注册自定义模板标记

@register.filter
def from_dict(d, k):
    return d[k]
{% for choice in choices %}
  {{ percentages|from_dict:choice.id }}
{% endfor %}
像这样使用它

@register.filter
def from_dict(d, k):
    return d[k]
{% for choice in choices %}
  {{ percentages|from_dict:choice.id }}
{% endfor %}

我认为这个解决方案将解决您的问题,可能是@HERAwais的复制品,我认为这是非常完整的。核心问题确实是访问字典,尽管我的困惑来自迭代方面。因为这个问题来自Django教程,我想未来的人们会遇到同样的问题。如果没有,那就足够公平了。我认为这个解决方案将解决您的问题,可能是@HERAwais的复制品,我认为这是非常完整的。核心问题确实是访问字典,尽管我的困惑来自迭代方面。因为这个问题来自Django教程,我想未来的人们会遇到同样的问题。如果不是,那就够公平了,很好。这个代码驻留在哪里?在我的视图上方?您必须在应用程序中创建一个名为
templatetags
的包,并在其中放入一个文件(如
extras.py
)。然后像这样将它们加载到模板中
{%load extras%}
。请看更多关于这个的内容,这很好。这个代码驻留在哪里?在我的视图上方?您必须在应用程序中创建一个名为
templatetags
的包,并在其中放入一个文件(如
extras.py
)。然后像这样将它们加载到模板中
{%load extras%}
。请查看更多关于此的信息