Python 没有唯一参数的唯一值错误
我正在尝试创建Python 没有唯一参数的唯一值错误,python,django,error-handling,django-admin,django-2.2,Python,Django,Error Handling,Django Admin,Django 2.2,我正在尝试创建帐户,每个服务器的用户名都是唯一的 class Server(models.Model): name = models.CharField(primary_key=True, max_length=50, unique=True) class Account(models.Model): server = models.ForeignKey(Server,on_delete=models.CASCADE) username = models.CharFi
帐户
,每个服务器的用户名都是唯一的
class Server(models.Model):
name = models.CharField(primary_key=True, max_length=50, unique=True)
class Account(models.Model):
server = models.ForeignKey(Server,on_delete=models.CASCADE)
username = models.CharField(max_length=100)
account_name = models.CharField(max_length=100)
password = models.CharField(max_length=50)
现在我得到了
重复键值违反了唯一约束“zuya\u aaccount\u username\u 5f0a17d4\u uniq”
当我创建一个非唯一的帐户\u名称时
不会显示任何问题您可以指定一个来指定两个(或多个)字段一起是唯一的:
class Account(models.Model):
server = models.ForeignKey(Server,on_delete=models.CASCADE)
username = models.CharField(max_length=100)
account_name = models.CharField(max_length=100)
password = models.CharField(max_length=50)
class Meta:
constraints = [
models.UniqueConstraint(
fields=['server', 'account_name'],
name='unique_username_per_server'
)
]
您可以指定,以指定两个(或多个)字段一起应是唯一的:
class Account(models.Model):
server = models.ForeignKey(Server,on_delete=models.CASCADE)
username = models.CharField(max_length=100)
account_name = models.CharField(max_length=100)
password = models.CharField(max_length=50)
class Meta:
constraints = [
models.UniqueConstraint(
fields=['server', 'account_name'],
name='unique_username_per_server'
)
]
那绝对是成功的!谢谢你,真的做到了!非常感谢。