我的模型如下:
city = CharField()
order = PositiveIntegerField(default=0)
,我想修复序列并使其不间断。 例如,如果我有:
London 0
Paris 5
Boston 7
我需要删除差距并将其转换为:
London 0
Paris 1
Boston 2
我可以通过以下方式实现它:
current_order = 0
cities = City.objects.all().order_by('order')
for city in cities:
if not current_order:
current_order = city.order
else:
city.order = current_order
city.save()
current_order += 1
我发现此解决方案完全无效,因为它多次击中数据库,所以我在考虑如何更有效地实现类似行为,最好通过DB引擎(PostgreSQL)。