当前位置: 首页 > 面试题库 >

Django模板如何使用变量查找字典值

俞子实
2023-03-14
问题内容
mydict = {"key1":"value1", "key2":"value2"}

查找在Django模板字典值的常规方法是{{ mydict.key1 }}{{ mydict.key2 }}。如果键是循环变量怎么办?即:

{% for item in list %} # where item has an attribute NAME
  {{ mydict.item.NAME }} # I want to look up mydict[item.NAME]
{% endfor %}

mydict.item.NAME失败。如何解决?


问题答案:

编写自定义模板过滤器:

from django.template.defaulttags import register
...
@register.filter
def get_item(dictionary, key):
    return dictionary.get(key)

(我.get这样使用,如果不存在该键,则不返回任何键。如果执行dictionary[key]此操作,则将引发一个KeyErrorthen。)

用法:

{{ mydict|get_item:item.NAME }}


 类似资料:
  • 问题内容: 查找在Django模板字典值的常规方法是, 。如果键是循环变量怎么办?即: 失败。如何解决? 问题答案: 编写自定义模板过滤器: 用法:

  • 问题内容: 我想在Django模板的字典中使用变量作为键。我一辈子都无法弄清楚该怎么做。如果我有一个带有名称或ID字段的产品,以及带有该产品ID索引的评级词典,那么我想说: 在python中,这可以通过简单的方式完成 但是我无法使其在模板中工作。我尝试使用…没有骰子。有想法吗? 问题答案: 你需要预先准备数据,在这种情况下,你应该将两元组列表传递给模板:

  • 问题内容: 我的视图代码基本上是这样的: 我想在Django模板中执行的操作是: 我想要这样输出: 但是通过变量名称via对dict的引用实际上不起作用。我怀疑它是在内部而不是在做。有什么办法可以解决此问题? 问题答案: 没有内置的方法可以执行此操作,您需要编写一个简单的模板过滤器才能执行此操作:http : //code.djangoproject.com/ticket/3371

  • 问题内容: 我的字典看起来像这样(字典中的字典): 现在,我只是想在模板上显示信息,但是我很挣扎。我的模板代码如下: 它只是在模板上显示“ 0”? 我也尝试过: 这甚至不显示结果。 我想也许我需要更深入地迭代一个级别,所以尝试了一下: 但这不会显示任何内容。 我究竟做错了什么? 问题答案: 可以说你的数据是- 你可以使用该data.items()方法来获取字典元素。注意,在django模板中,我们

  • 上一节中,我们简单介绍了模板相关的概念,并手动实践了 python 中的两个流行的模板库 Mako 和 Jinja2。接下来,我们将深入了解如何在 Django 中使用模板系统。 1. Django 中的模板系统 Django 中自带了一个模板系统,叫做 Django Template Language (DTL),通过该引擎,我们可以方便的加载模板文件到内存中进行编译并动态插入数据,最后返回转换

  • 问题内容: 我想知道如何将变量传递给我的所有模板,而无需在views.py文件中的每个方法上重复相同的代码? 在下面的示例中,我想使类别(类别对象的数组)可用于Web应用程序中的所有模板。 一种查看方法 另一种查看方法 问题答案: 你需要的是上下文处理器,创建一个上下文处理器非常容易。假设你有一个名为的应用custom_app,请执行以下步骤: 加入到 在(你已经做了了,对不对?); 创建一个文件