请问您是否可以在下面查询我的python代码:
gp_id= [0,1,2]
for gp in gp_id:
specail_list = Special.objects.filter(
promotion=False,
start__lte=date_instance,
minimum_stay__lte=nights,
object_id=room_filter.id,
end__gte=date_instance,
is_active=True,
member_deal=False
)[gp]
print specail_list
答案 0 :(得分:1)
所以我认为您正在尝试询问列表中的前三个元素,索引为0、1、2。因此,尽管您的操作是有效的,但这种方法更好。
切片-每个python程序员都应该知道的常用功能:
“切片: https://docs.python.org/3/library/functions.html#slice
的Python文档用于“限制查询集”的Django文档: https://docs.djangoproject.com/en/2.1/topics/db/queries/#limiting-querysets
将从未输入的第0个索引处开始抓取前三个元素。括号也可以是[0:3]
。
special_list = Special.objects.filter(
promotion=False,
start__lte=date_instance,
minimum_stay__lte=nights,
object_id=room_filter.id,
end__gte=date_instance,
is_active=True,
member_deal=False
)[:3]
答案 1 :(得分:0)
我认为您可以像这样循环播放:
special_queryset = Special.objects.filter(
promotion=False,
start__lte=date_instance,
minimum_stay__lte=nights,
object_id=room_filter.id,
end__gte=date_instance,
is_active=True,
member_deal=False
id__in = gp_id
)
for i in special_queryset:
print(i)
如果要为查询集中的项目更新相同的内容,请使用update()
方法。
special_queryset.update(promotion=True)