django 复合主键(composit primary key)
来源:互联网 发布:商务软件解决方案比赛 编辑:程序博客网 时间:2024/05/21 18:40
项目开发中,不是所有表都只有一个主键。如果只有一个主键的情况,django 很容易做,也很好做。
在models.py 中定义 class 时,可以直接实现:
比如:
class Category(models.Model):
catid = models.CharField(primary_key=True)
但是,在很多表中,有多个字段作为主键,比如主从表的从表,通常就是多个字段组成的复合主键,但如果我们用上面类似的方式来做,在保存的时候可能会出错。比如如下方式:
class Category(models.Model):
catid = models.CharField(primary_key=True)
bigcate = models.CharField(primary_key=True)
.........
这样做的话,在保存的时候,肯定会出错,正确的做法应该是 :
这样保存就可以这样了:
PS:这样做,在保存的时候,肯定是没有问题的,但后来我在测试 get,filter 方法时,还是会报错。说明这种方法,还是有点问题。总是说有id 没找到,其实这是 django 默认的 primary key 没有,看来还得继续找办法。有新方法继续更新。
在models.py 中定义 class 时,可以直接实现:
比如:
class Category(models.Model):
catid = models.CharField(primary_key=True)
但是,在很多表中,有多个字段作为主键,比如主从表的从表,通常就是多个字段组成的复合主键,但如果我们用上面类似的方式来做,在保存的时候可能会出错。比如如下方式:
class Category(models.Model):
catid = models.CharField(primary_key=True)
bigcate = models.CharField(primary_key=True)
.........
这样做的话,在保存的时候,肯定会出错,正确的做法应该是 :
程序代码
class Category(models.Model):
catid = models.CharField(max_length=50) #这里不设置主键了
bigcate = models.CharField(max_length=50) #这里不设置主键了
.........
class Meta:
db_table = 'my_category'
unique_together = ("catid", "bigcate") #这是重点
这样保存就可以这样了:
程序代码
cat=models.Category(catid='123',bigcat='234',......)
cat.full_clean()
cat.save()
PS:这样做,在保存的时候,肯定是没有问题的,但后来我在测试 get,filter 方法时,还是会报错。说明这种方法,还是有点问题。总是说有id 没找到,其实这是 django 默认的 primary key 没有,看来还得继续找办法。有新方法继续更新。
0 0
- django 复合主键(composit primary key)
- django 复合主键(composit primary key)
- EJB---->复合主键(Composite Primary Key)
- 主键(Primary Key)
- 主键约束--PRIMARY KEY
- Oracle之主键(Primary Key)用法详解
- 9、MySQL-主键约束(PRIMARY KEY)
- oracle的primary key主键约束
- Oracle之主键(Primary Key)用法详解
- 删除主键: Alter table tabname drop primary key(col)
- MySQL里Create Index 能否创建主键 Primary Key
- JDBC获得数据库生成的主键(JDBC、Primary Key)
- Mysql primary key主键冲突的可能性与解决方案
- PRIMARY KEY主键和IDENTITY属性函数的区别
- SQLSERVER聚集索引和主键(Primary Key)的误区认识
- 重建分区表主键 - Recreate Primary Key on a partition table
- mysql 数据表中主键(primary key)的操作
- mysql 主键重复问题解决 Duplicate entry '787192513' for key 'PRIMARY'
- bzoj3720: Gty的妹子树
- ZeroMQ to .Net 发布订阅 dotnet体系
- HDU2955(动态规划背包)
- Jquery Scroll 事件
- boost::bind的使用方法
- django 复合主键(composit primary key)
- MySQL Cluster 优点和缺点
- 头像剪裁
- OpenCV图像处理的一些基础
- scrapy实战一
- 大型网站建设的意义
- 检验ip是否冲突的方法
- Ado.Net小练习03(省市联动)
- FastDFS安装完之后可执行文件和配置文件路径