在django中获取表格作为两个部分

时间:2017-01-04 13:00:20

标签: python django database postgresql

我对数据过滤有疑问。例如,我们有一个名为Shop的名称,它是模型名称(名称,活动)的FK。如果我需要过滤在1个视图中处于活动状态且未激活的商店名称,该怎么办?使用2个两个查询是唯一的选择吗?如果没有,有人可以展示有效的方法吗?问题是,我可以将表格作为两部分,按简单条件划分而不运行两个查询吗?

1 个答案:

答案 0 :(得分:0)

根据您的描述判断,您有这样的模型安排,对吗?

class Name(models.Model):
    name = models.CharField()
    active = models.CharField()

class Shop(models.Model):
    name = models.ForeignKey(Name)

然后你可以这样做:

active_list = []
inactive_list = []
shop_list = Shop.objects.all()

for shop in shop_list :
    if shop.name.active :
        #Do something
        active_list.append(shop)

    else :
        #Do something else
        inactive_list.append(shop)

print active_list
print inactive_list

在此循环结束时,您将拥有基于活动或非活动字段的所有商店。

修改

如评论中所述,如果需要根据活动,非活动选择名称对象,您可以使用:

active_list = []
inactive_list = []
name_list = Names.objects.all()

for names in name_list :
    if names.active == True :
        #Do something
        active_list.append(names)
    else :
        #Do something else
        inactive_list.append(names)
print active_list
print inactive_list