gpt4 book ai didi

python - Django:创建一个不是主键唯一的列

转载 作者:太空宇宙 更新时间:2023-11-04 01:25:11 25 4
gpt4 key购买 nike

我有一个数字 codes 列表以及相应的助记符 names 我想为它们创建一个 Django 模型,所以 names 是主要的键,但也有一个约束,即 code 列中的值是唯一的。

我试过的是:

class Constant(models.Model):
name = models.CharField(max_length=70)
name.primary_key = True
code = models.IntegerField()
description = models.CharField(max_length=100)

unique_together = (("code",),)

我意识到 unique_together 是为了强制一组列中的值的唯一性,但我想我会尝试只使用一个并且它似乎有效,即在执行 时没有错误python manage.py syncdb,但它并没有真正强制执行我想要的约束:

mysql> describe constant;
+-------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+-------+
| name | varchar(70) | NO | PRI | | |
| code | int(11) | NO | | | |
| description | varchar(100) | NO | | | |
+-------------+--------------+------+-----+---------+-------+
3 rows in set (0.01 sec)

mysql> insert into constant values ('x',1,'fooo');
Query OK, 1 row affected (0.00 sec)

mysql> insert into constant values ('y',1,'foooo');
Query OK, 1 row affected (0.00 sec)

如何确保两列中的值是唯一的?

最佳答案

将唯一选项添加到您的代码字段。

class Constant(models.Model):
name = models.CharField(max_length=70, primary_key=True)
code = models.IntegerField(unique=True)
description = models.CharField(max_length=100)

关于python - Django:创建一个不是主键唯一的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18335222/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com