我正在做一个项目,我有模型:客户端、用户和扩展,只是为了让这变得简单。 用户必须与一个客户端相关联才能拥有分机号码。 用户可以有分机号,比如 100 和 101。 与另一个客户端关联的另一个用户可以具有相同的分机号 100 和 101。 因此,Extensions 在我的数据库中不是唯一的,因此当我在管理中添加它时,它允许用户拥有两个相同的分机号码,这是错误的。如何检查要添加的分机号码是否已包含在该用户中?
class Extension(models.Model):
user = models.ForeignKey(User, verbose_name=u"User")
date_created = models.DateTimeField(auto_now_add=True, auto_now=True)
number = models.CharField(max_length=16, unique=False)
kind = models.SmallIntegerField(choices=KIND_CHOICES,default=KIND_UNKNOWN)
User 类是默认的 Django 类。
class Client(models.Model):
name = models.CharField(u"Nome", max_length=64)
last_update = models.DateTimeField(null=True, blank=True)
last_inbound_call = models.DateTimeField(null=True, blank=True)
last_outbound_call = models.DateTimeField(null=True, blank=True)
username = models.CharField(max_length=32)
password = models.CharField(max_length=16)
最佳答案
使用Meta.unique_together
在 Extension
中的 user
和 number
上。
class Extension(...):
...
class Meta:
unique_together = (('user', 'number'),)
关于python - Django:具有与客户端关联的唯一分机号,但与另一个客户端关联的相同分机号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4209345/