我可以通过queryset上的一个循环创建2个字典吗?



这是我现在的代码:

booking_data = {p: 0 for p in vehicle_category.types.all()}
vehicle_type_mapping = {k.id: k for k in vehicle_category.types.all()}

我想知道是否有一种方法,我可以创建这两个字典只有一个循环。或者有没有其他更有效的方法。

编辑更多上下文:

for vehicle_category in VehicleCategory.objects.prefetch_related('types').order_by('name'):
booking_data = {p: 0 for p in vehicle_category.types.all()}
vehicle_type_mapping = {k.id: k for k in vehicle_category.types.all()} 
completed_booking_data[vehicle_category] = booking_data

一种方法:

booking_data = {}
vehicle_type_mapping = {}
for r in vehicle_category.types.all():
vehicle_type_mapping[r.id] = r
booking_data[r] = 0

的另一种选择:

booking_data = dict.fromkeys(vehicle_category.types.all(), 0)
vehicle_type_mapping = {k.id: k for k in booking_data}

两个解都只调用vehicle_category.types.all()一次,而不是两次。

相关内容

  • 没有找到相关文章

最新更新