【发布时间】:2014-02-06 03:43:32
【问题描述】:
我有一个模型,其中包含一个名为 is_active 的布尔字段。我想将 user 可以具有的模型数量限制为 1。
class MyModel(models.Model):
user = models.ForeignKey(User)
is_active = models.BooleanField(default=False)
#...more fields ...
最初我只是想在Meta 中添加一个unique_togeather = ("user", "is_active") 条目——当然这也会限制User 可以拥有的False 条目的数量——我需要不受限制。
理想情况下,我想在数据库级别解决这个问题,以防止出现竞争条件。
模型是由使用MyModel.objects.get_or_create() 导入数据的 Celery 任务创建的——因此,由于 Celery 工作人员的并发水平,很可能会出现竞争条件。
【问题讨论】:
标签: django postgresql django-models