Django模板中如何使用filter进行数据的过滤和筛选

2023-04-08 00:00:00 过滤 筛选 如何使用

在Django模板中可以使用filter对数据进行过滤和筛选,filter可以接受参数,用于进一步细化过滤条件。以下是一个简单的使用例子:

假设有一个数据列表,其中包含多条记录,每条记录包含两个属性:名称和URL,如下所示:

data_list = [
    {'name': 'Google', 'url': 'https://www.google.com'},
    {'name': 'Baidu', 'url': 'https://www.baidu.com'},
    {'name': 'pidancode', 'url': 'https://www.pidancode.com'},
    {'name': '皮蛋编程', 'url': 'https://www.pidancode.com'}
]

在模板中,可以使用filter进行数据筛选。例如,要获取所有名称包含“pidancode”的记录,可以这样写:

{% for data in data_list|filter(name__contains='pidancode') %}
    <a href="{{ data.url }}">{{ data.name }}</a><br/>
{% endfor %}

上面的代码中,filter调用的参数是一个字典,包含了过滤条件name__contains='pidancode'。这里的“name__contains”表示对数据列表中的name属性进行包含匹配,即只要name中包含“pidancode”就符合条件。filter返回的是符合条件的数据集合,可以直接在模板中使用for循环进行遍历。

如果要获取名称以“皮蛋”开头的记录,可以这样写:

{% for data in data_list|filter(name__startswith='皮蛋') %}
    <a href="{{ data.url }}">{{ data.name }}</a><br/>
{% endfor %}

这里的“name__startswith”表示对数据列表中的name属性进行以“皮蛋”开头的匹配,即只要name以“皮蛋”开头就符合条件。

除了使用字符串作为过滤条件之外,filter还可以接受其他类型的参数,如日期、数字等,具体使用方式可以参考Django官方文档。

相关文章