【发布时间】:2021-02-10 14:29:10
【问题描述】:
我有模型用户和地址,地址模型包含用户作为外键。是否有可能处理这个用例,在多个用户地址的情况下,一个用户可以有一个默认地址?这是一个示例代码。 谢谢。
class User(models.Model):
name = models.CharField(max_length=10)
class Address(models.Model):
address = models.CharField(max_length=10)
active=models.BooleanField(default=False)
user = models.ForeignKey(
User,
blank=False,
null=False,
related_name="user_address", on_delete=models.CASCADE)
class Meta:
constraints = [
models.UniqueConstraint(fields=['user', 'active'],
condition=models.Q(active=True),
name='user default address.')
]
【问题讨论】:
-
你到底是怎么设置默认地址的,你当前的UniqueConstraint有什么问题
-
我想通过仅在一个地址上标记活动字段来设置默认地址,而对于所有其他用户地址未选中它。使用当前的 UniqueConstraint 无法正常工作,并允许将多个地址标记为活动。
标签: django django-models unique-constraint