【问题标题】:How to get dictionary value in Django Template with Key如何使用键在 Django 模板中获取字典值
【发布时间】:2019-12-13 21:45:06
【问题描述】:

我的视图函数中有两个字典

policy = {{'policy_no':'123'},{'policy':'456'}}

声明 = {{'123':'ACTIVE'}}

在我的模板文件中,我不想迭代 'claim' dict。

view.py


policies = {{'policy_no':'123'},{'policy':'456'}}

claims = {{'123':'ACTIVE'}}

模板文件

{% for policy in policies %}
   {{claims[policy.policy_no]}} # I want to access directly 'ACTIVE'
{% endfor %}

【问题讨论】:

  • 您可以创建自定义创建过滤器 (stackoverflow.com/q/50020473/67579),但建议在模板中执行此类操作。模板应该用于“渲染”逻辑,而不是“业务逻辑”。
  • 如果有错误信息,您会收到什么错误信息?
  • @DanielButler:Django 模板不支持完整的 Python 语法故意:无法进行函数调用和下标。可以使用 Jinja,但通常这意味着模板中的某些内容未完全正确。
  • 更改视图中的上下文,以便policies 字典包含有关关联claim 的相关信息。

标签: django python-3.x


【解决方案1】:

我使用了自定义模板标签过滤器并解决了这个问题。感谢@Willem Van Onsem

core_extras.py

from django.template.defaulttags import register

@register.filter
def get_item(dictionary, key):
    return dictionary.get(key)

模板文件:

{% load core_extras %}
{% for policy in policies %}
   {{ claims|get_item:policy.policy_no }}
{% endfor %}

【讨论】:

    猜你喜欢
    • 2019-03-28
    • 2018-04-14
    • 2018-11-15
    • 2015-05-23
    • 2021-07-18
    • 1970-01-01
    • 2022-12-11
    • 2011-11-22
    • 2019-06-18
    相关资源
    最近更新 更多