Django使用计算字段创建

时间:2017-07-31 15:07:43

标签: python django isolation-level

说我有这样的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的插入?

0 个答案:

没有答案