【发布时间】:2016-03-18 20:29:01
【问题描述】:
例如,我有一个模型:
class Model1(models.Model):
is_free = models.BooleanField(default=True)
rel_object = models.ForeignKey(Model2, null=True, default=None)
有些对象被设置为“免费”。我想获取第一个并将其设置为“非空闲”线程安全(我需要保证其他线程不能同时更改此对象):
model1 = Model1.objects.filter(is_free=True).first()
model1.is_free = False
model2.rel_object = model2
model2.save()
怎么做?
【问题讨论】:
-
您是说数据库中有多个实例代表同一行吗?或者每行有多个实例,并且您想确保第一个(“第一个”是什么意思?)不能更改为“非免费”?
标签: django concurrency django-database