根据单词的重复增加模型整数字段

时间:2017-03-10 09:48:58

标签: python django string forms models

假设我有两个模型,一个Box模型和一个Thing模型。最后一个将Box作为外键。每个Box作为用户可以使用ModelForm添加的字符串对象的容器。 models.py应该是这样的:

models.py

SKView

现在,每次用户在Form中插入相同的字符串时,我想将“thing_number”Integer字段增加1.是否有一种简单的方法可以这样做?

1 个答案:

答案 0 :(得分:1)

我认为您应该将thing_number的{​​{1}}字段默认为零。 如果你这样做,那么你可以通过

增加东西数量
Thing

其他明智的:

thing, created = Things.objects.get_or_create(box=your_box, name=thing_name)
thing.things_number += 1
thing.save()

----额外

由于@ e4c5表示上面的代码可能导致竞争条件,那么代码可以像这样改变:

thing, created = Things.objects.get_or_create(box=your_box, name=thing_name,
                                              default={'thing_number':0})
thing.things_number += 1
thing.save()