在 Django 中,可以通过模板语言中的变量和过滤器来调用字典值的列表。
假设我们有一个字典 `my_dict`,其中包含一个键为 `"my_list"` 的列表:
```python
my_dict = {
"my_list": [1, 2, 3, 4, 5]
}
```
在 Django 模板中,我们可以使用以下语法来调用该列表:
```html
{% for item in my_dict.my_list %}
{{ item }}
{% endfor %}
```
在上面的代码中,我们使用了 `my_dict.my_list` 来获取字典中键为 `"my_list"` 的值,然后使用 `for` 循环遍历该列表,并使用 `{{ item }}` 显示每个元素的值。
如果字典中的键名是动态的,可以使用下面的语法:
```html
{% for item in my_dict|get_item:key %}
{{ item }}
{% endfor %}
```
在上面的代码中,我们使用了 `my_dict|get_item:key` 来获取字典中指定键名的值,其中 `key` 是一个变量,表示要获取的键名。`get_item` 是一个自定义的过滤器,可以在 Django 模板中使用。你需要在项目中创建一个名为 `templatetags` 的文件夹,在其中创建一个 Python 文件,然后在该文件中定义 `get_item` 过滤器。例如,可以按照以下步骤创建一个名为 `custom_filters.py` 的文件:
1. 在项目中创建一个名为 `templatetags` 的文件夹。
2. 在 `templatetags` 文件夹中创建一个名为 `custom_filters.py` 的 Python 文件。
3. 在 `custom_filters.py` 中定义 `get_item` 过滤器:
```python
from django import template
register = template.Library()
@register.filter
def get_item(dictionary, key):
return dictionary.get(key)
```
在上面的代码中,我们首先导入了 `template` 模块,并使用 `register.filter` 装饰