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

标签 python django django-models django-admin

我正在做一个项目,我有模型:客户端、用户和扩展,只是为了让这变得简单。 用户必须与一个客户端相关联才能拥有分机号码。 用户可以有分机号,比如 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_togetherExtension 中的 usernumber 上。

class Extension(...):
   ...
  class Meta:
    unique_together = (('user', 'number'),)

关于python - Django:具有与客户端关联的唯一分机号,但与另一个客户端关联的相同分机号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4209345/

相关文章:

python - 如何制作字段名称与模型字段名称不同的 Django 模型表单?

python - 如何乘以列表列表的位置

python - 错误 Tensorflow 找不到字段 google.protobuf.EnumDescriptorProto.EnumReservedRange.start

python - 如何调试django crontab?

Django:在模板中分配变量

python - 错误 : Setup script exited with error: command 'gcc' failed with exit status 1

python - 如何从 django 向twisted发送通知?

python - 如何使 DRF 序列化器与大写兼容

python - Django查询集如何排除没有组或标签的产品?

python - Django 管理中的 MultiValueDictKeyError