Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.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 用于动态显示字典的标记连接_Python_Django_Django Templates - Fatal编程技术网

Python 用于动态显示字典的标记连接

Python 用于动态显示字典的标记连接,python,django,django-templates,Python,Django,Django Templates,我有一本词典词典从我的视图中返回。在模板中,我想访问特定的密钥。我该怎么做 {% for a in applications %} {{ dict_.a.id}} {% endfor %} 从视图: context = { 'applications': applications, 'dict_': count_dict } return render(request, 'applications/map.html', context) 我需要去看吗? 例如 {{dict}

我有一本词典词典从我的视图中返回。在模板中,我想访问特定的密钥。我该怎么做

{% for a in applications %}
{{ dict_.a.id}}
{% endfor %}
从视图:

context = {
    'applications': applications,
    'dict_': count_dict
}

return render(request, 'applications/map.html', context)
我需要去看吗? 例如

{{dict}}+{a.id}

更新。以下是我的看法:

def MapView(request):
    applications = Application.objects.values(
        'name', 'id', 'icon_name').filter(organization_id=1).order_by('name')

    context = {
        'applications': applications,
        'devices_count': [(a, devices.filter(id=a['id']).count()) for a in applications]
    }

    return render(request, 'applications/map.html', context)
Django的模板被刻意限制,以便于执行这样的字典查找,或使用参数进行函数调用。原因是业务逻辑最好在视图中编写,而不是在模板中编写

例如,可以在视图中进行映射,如:

context = {
    'app_counts': [(a, count_dict[a.id]) for a in applications]
}

return render(request, 'applications/map.html', context)
然后,您可以使用以下工具渲染此内容:

{% for app, count in app_counts %}
    {{ app }}: {{ count }}
{% endfor %}
Django的模板被刻意限制,以便于执行这样的字典查找,或使用参数进行函数调用。原因是业务逻辑最好在视图中编写,而不是在模板中编写

例如,可以在视图中进行映射,如:

context = {
    'app_counts': [(a, count_dict[a.id]) for a in applications]
}

return render(request, 'applications/map.html', context)
然后,您可以使用以下工具渲染此内容:

{% for app, count in app_counts %}
    {{ app }}: {{ count }}
{% endfor %}

虽然可以创建模板标记,但不建议这样做。Django的模板故意不允许索引,因为业务逻辑应该写在视图中,而不是写在模板中。从视图返回的方式写在视图中。我想要访问字典的方式,不是模板的一部分吗?我返回多个字典您可以在视图中进行映射。您的意思是序列化为json数据并返回整个json?如果你能在这个网站上共享一个链接,我将不胜感激。不,你只是简单地通过字典引导每个应用程序。虽然你可以制作模板标签,但不建议这样做。Django的模板故意不允许索引,因为业务逻辑应该写在视图中,而不是写在模板中。从视图返回的方式写在视图中。我想要访问字典的方式,不是模板的一部分吗?我返回多个字典您可以在视图中进行映射。您的意思是序列化为json数据并返回整个json?如果你能在这个网站上共享一个链接,我将不胜感激。不,你只需通过字典为每个应用程序提供通道。