说我有这样的Django模型:
class Item(model):
category = CharField(...)
weight = IntegerField(...)
我想创建新的Item
weight=Item.objects.filter(categoty=SOME_CATEGOTY).aggregate(Max('weight'))['weight__max']+1
问题是执行上面的查询是为了将数据加载到python中,而不是 如
insert into items (category, weight) select SOME_CATEGORY, max(weight)+1 from items where category = SOME_CATEGORY
因此,并发创建可能会创建具有相同权重的相同类别的多个项目,而顺序创建始终会生成不同的权重值。我是否需要可序列化的隔离级别来实现这两个步骤:选择max然后创建,或者django有内置机制来生成带有select的插入?