Django:具有与客户端关联的唯一分机号码,但与另一个客户端关联的分机号码相同

chi*_*rox 1 python django django-models django-admin

我正在开发一个我有模型的项目:Client,User和Extensions,这只是为了简化.用户必须与一个客户关联才能拥有分机号码.用户可以拥有扩展名,例如100和101.与另一个客户端关联的另一个用户可以具有相同的扩展名100和101.因此,扩展在我的数据库中不是唯一的,因此它允许用户在具有两个相同的扩展号时我在管理中添加它,这是错误的.如何确定此用户中是否已包含要添加的分机号码?

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)
Run Code Online (Sandbox Code Playgroud)

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)
Run Code Online (Sandbox Code Playgroud)

Ign*_*ams 5

使用Meta.unique_togetherusernumberExtension.

class Extension(...):
   ...
  class Meta:
    unique_together = (('user', 'number'),)
Run Code Online (Sandbox Code Playgroud)