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