在Django中使对象连续序列的最有效方法

我的模型如下:

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)。

a334965556 回答:在Django中使对象连续序列的最有效方法

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3155465.html

大家都在问