Django:使用同一个对象如何在Django模板中显示两个不同的结果?

2024-06-16 19:13:34 发布

您现在位置:Python中文网/ 问答频道 /正文

使用同一个对象如何使用django模板显示两个不同的结果?你知道吗

在一个页面中有两个div,它应该使用同一个对象显示不同的信息。你知道吗

输入

对象数据如下

[
    {
        "Google": [
            {
                "Rating": 1,
                "Website": {
                    "id": "1",
                    "Name": "googleplus"
                }
            },
            {
                "Rating": 2,
                "Website": {
                    "id": "1",
                    "Name": "googleplus"
                }
            },
            {
                "Rating": 1,
                "Website": {
                    "id": "2",
                    "Name": "googlemap"
                }
            }
        ]
    },
    {
        "Facebook": [
            {
                "Rating": 1,
                "Website": {
                    "id": "1",
                    "Name": "facebookplus"
                }
            },
            {
                "Rating": 2,
                "Website": {
                    "id": "1",
                    "Name": "facebookplus"
                }
            },
            {
                "Rating": 1,
                "Website": {
                    "id": "2",
                    "Name": "facebookmap"
                }
            }
        ]
    }
]

所需输出

DIV 1(网站名称应为唯一值)

DIV 2(应显示所有网站名称)

主分区启动

回路1

Google  ------  DIV 1 (googleplus, googlemap) ------ DIV 2 (googleplus, googleplus, googlemap) 

回路2

Facebook  ------  DIV 1 (facebookplus, facebookmap) ------ DIV 2 (facebookplus, facebookplus, facebookmap) 

主分区端


Tags: 对象namediv名称idfacebook网站google
1条回答
网友
1楼 · 发布于 2024-06-16 19:13:34

模板仅用于显示给定的数据。如果你想操作数据,你必须在视图中操作。这会容易得多,因为您可以使用普通的python语法。你知道吗

您可以使用以下方法:

all_data = <object_name>.objects.all()
unique_data = list(set(all_data))

更新

如果您想在前端执行此操作,我建议使用Lodash library。你知道吗

但是你当然可以用普通的JavaScript来实现:

var all_data = ...;
var unique_data = [];
for (i = 0; i < all_data.length; i++) {
    if (unique_data.indexOf(all_data[i]) < 0) unique_data.push(all_data[i]);
}

相关问题 更多 >