使用过滤器后如何组织数据

时间:2016-12-28 19:18:06

标签: python django database

我们说我有一个这样的数据库表:

NumCOL    NameCol    AgeCOL    ColourCOL
----------------------------------------
1         Joel       18         Blue
2         Joey       22         Red
3         Jacob      25         Green
4         Jack       27         Blue
5         Joey       21         Red

在此示例中,NumCOL是唯一的,而{1}}的icrements不是唯一的。我需要以我可以根据NameCOL, AgeCOL & ColourCOL获取所有条目的方式过滤它们,然后获取ColourCOL中与颜色相关的条目。我在下面使用此代码(用户选择蓝色):

NameCOL & AgeCOL

现在有两个颜色为蓝色的名称,所以我想使用一个列表并将所有数据附加到一个列表中,并在需要时从列表中调用,如下所示:

colour = request.POST.get('FormColour') #colour = blue 
name = Database.objects.filter(ColourCOL=colour).values_list('NameCOL', flat=True)

我担心的是,如果我需要写入PDF或将其显示在表格中,我将无法有效地从列表中检索数据(如果有的话)。另一种解决方案是按ex_list = [] tracker = 0 for x in name: age = Database.objects.filter(ColourCOL=colour, NameCOL=name).values_list('AgeCOL', flat=True) ex_list.append([name[tracker], name, age]) tracker += 1 排序,但用户只能访问NumCOL中的数据。那么,对于我可以显示所选颜色的所有信息进行排序的最佳方法是什么,然后是每个人都使用该颜色的名称和年龄?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

colour = request.POST.get('FormColour') #colour = blue 
data_dict = Database.objects.filter(ColourCOL=colour).values('NameCOL', 'AgeCOL', 'NumCOL')
for data in data_dict:
    print(data['NameCOL'], data['AgeCOL'], data['NumCOL'])

您可以使用值从检索到的数据中创建一个dict,迭代它并从dict访问列名。