django 复合主键(composit primary key)

Django之主键外键详解 在ORM操作处了解的文章中,我们已经初步接触到了主键与外键的字段定义,那么本文以详细介绍主键外键的使用方法等。 阅读详情

【原帖:http://www.yihaomen.com/article/python/252.htm】

项目开发中,不是所有表都只有一个主键。如果只有一个主键的情况,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)
    .........
这样做的话,在保存的时候,肯定会出错,正确的做法应该是 :
程序代码 程序代码

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()
python django model联合主键的例子 今天小编就为大家分享一篇python django model联合主键的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 立即下载

相关推荐

实战分享:如何用YOLOv5s+BIFPN高效检测隧道裂缝(附数据集获取)

本文详细介绍了如何利用YOLOv5s结合BIFPN(双向特征金字塔网络)构建高效的隧道裂缝智能检测系统。文章从高质量数据集构建、针对性数据增强、模型架构选型与调优,到工程化部署全链路进行了实战分享,旨在为基础设施自动化巡检提供兼顾精度与速度的解决方案。

weixin_29062823的博客 380

Django自学笔记 4-3 模型(models)主键外键

————总目录——前言——框架版本———— ======================= 大爽歌作,made by big shuang ======================= 参考:https://docs.djangoproject.com/en/2.2/ref/models/fields/ 三、模型(models)主键外键 1 主键 梳理自官方文档:automatic-primary-key-fields 不设置主键的情况下,Django会自动为每个模型提供以下字段: id = .

大爽老师的博客 3603

Multisim实战:5分钟搞定一阶RC电路仿真(附示波器波形分析技巧)

本文通过Multisim软件,详细演示了如何快速搭建一阶RC电路并进行仿真分析。文章提供了从元件选取、电路连接、虚拟示波器设置到波形观测的完整流程,并重点分享了测量时间常数、区分电路响应类型等核心分析技巧,帮助电子工程初学者和爱好者高效掌握电路仿真与分析方法。

weixin_29175469的博客 182

django 中多字段主键(复合、联合主键)

django中不支持双主键、多主键。 要实现类似功能可以: classMeta: unique_together=(("driver","restaurant"),) 里边两个元素联合去重的。 既是复合主键 注意使用这种方法不要设置主键,让django自己生成一个id作为主键即可。 参考:http://docs.djangoproject.com/en/dev/ref/models/options...

weixin_33701564的博客 3356

双摄像头的实时视频拼接及目标跟踪(一)

本章主要讲图像拼接算法的研究 先膜拜一下知乎大佬全面的叙述:https://www.zhihu.com/question/34535199/answer/135169187 本文图像拼接是基于opencv的图像拼接,流程分为以下几步 ...

Y.W.jian的博客 3万+

箱式连续提升机

箱式连续提升机,是对具有高度差较大(>1500mm)的输送线之间进行连接,将箱式物资进行连续输送的提升(或下降)的输送设备,可根据输送线的具体输送要求作相应的参数设计。目前的箱式连续提升机种类比较多,常用的形式主要有Z型和C型,工作原理相同,只是入口和出口分别在两侧和同侧。

月生沧溟 1249

Django如何创建联合主键

一个表可以有多少主键? 1、数据库中的每张表只能有一个主键,不可能有多个主键 2、所谓一个表多个主键,我们称之为联合主键 3、主键的作用是保证数据的唯一性和完整性,同时通过主键检索表增加检索速度 Django中如何创建联合主键 单张表内建立联合主键 class IotTemp(models.Model): seq_no = models.IntegerField(blank=False, ...

weixin_44549556的博客 4272

YOLOv12改进前必看 - YAML模型配置文件详细解读(再也不用担心通道数不匹配) 附网络结构图

YOLOv12的模型配置文件在中,里面包含yolov12的以及的不同大小的模型,本文将详细介绍一下YOLOv12模型文件中各参数的含义。

Limiiiing的博客 3276

【django】models设置联合主键

【django】models设置联合主键 class man(Model): id=AutoField(primary_key=True) # 设置单个主键 name = CharField(max_length=30) age =IntegerField() class girl(Model): name=CharField(max_length=10) age = IntegerField() # 接下来设置联合主键 class Meta:

xmy7007的博客 2926

引以为戒:一个“看不见”的空格,导致上下文超限——从 `llama-server` 错误说起

文章摘要: 本文分享了Qwen工程团队在部署llama-server时遇到的参数失效问题:明明设置了-c 32768上下文参数,却仍报错"超出4096 tokens限制"。经排查发现,问题根源是批处理脚本中续行符^后存在两个空格,导致参数被忽略。文章详细解析了Windows批处理中^的严格语法规则(必须紧贴前字符),对比了错误与正确写法的差异,并给出4条实用建议:使用编辑器显示空白字符、调试时关闭@echo off、预检完整命令、优先单行命令。最后强调在AI系统部署中,此类"隐

刘一说的IT专栏 541

Android 中 app freezer 原理详解(二):S 版本

在之前的两篇博文《Android 中app内存回收优化(一)》和《Android 中app内存回收优化(二)》中详细剖析了 Android 中 app 内存优化的流程。这个机制的管理通过 CachedAppOptimizer 类管理,为什么叫这个名字,而不叫 AppCompact 等?freezer,一个针对应用进程长期处于 Cached 状态的优化。在之前博文《app freezer 原理 R 版本》

私房菜 3610

Django 外键引用另一个表中的多个字段

在 Django 中,外键(​​ForeignKey​​)通常只引用另一张表的一个字段,比如一个主键或一个唯一标识字段。然而,如果我们需要让一个外键引用另一张表中的多个字段,通常有以下几种方法来实现这种关系。

weixin_44617651的博客 1185

【大模型+知识图谱】大模型与知识图谱融合:技术演进、实践应用与未来挑战

大模型与知识图谱的融合不是简单拼接,而是认知智能的范式重构。当符号主义的精确性与连接主义的泛化能力深度交织,我们正站在通向可信AGI的关键路口。正如OpenKG技术委员会王昊奋教授所言:“2025年将是图模协同从技术探索走向规模落地的分水岭”。参考文献OpenKG 2024年度报告(同济大学王昊奋)大型语言模型与知识图谱协同研究综述(海豚实验室,2024)知识图谱与大模型结合方法概述(黄巍,2023)图模互补:知识图谱与大模型融合综述(优快云,2024)

知识靠谱的博客 1092

django 中多字段主键

django中不支持双主键、多主键。 要实现类似功能可以: classMeta: unique_together=(("driver","restaurant"),) 里边两个元素联合去重的。 注意使用这种方法不要设置主键,让django自己生成一个id作为主键即可。 参考:http://docs.djangoproject.com/en/dev/ref/m

wdt3385的专栏 8244

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

python django model联合主键

今天,在家试试django的model的设置,如何设置的联合主键,我经过查资料和实践,把结果记录如下:       例如: class user(Model):   id=AutoField(primary_key=True)   name = CharField(max_length=30)   age =IntegerField() class role(Model):   id

lilovfly的专栏 1万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Django使用联合主键

今天闲着没事,突然想起一个以前遇到的一个小问题。一直忘了来验证自己的解决方案,所以今天特意来查询了些资料来验证下自己的想法。整理如下:   单张表内建立联合主键: class IotTemp(models.Model): mac = models.CharField(max_length=64, blank=False) temperature = models.Flo...

weixin_30629977的博客 597

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

django mysql 主键_关于Django:MySQL数据库中指定的两个主键

我正在尝试创建一个测试数据库,该数据库是现有数据库的副本。为了做到这一点,我正在使用Django模型(理论上是与原始数据库一起使用的模型)。我最近从其他人那里继承了该代码,并试图弄清楚代码到底在发生什么。在模型中,其中一个表有两列被标识为主键。column1 = models.IntegerField(primary_key = True)column2 = models.IntegerField...

weixin_36299472的博客 896

【Django】在大型项目中的django的性能模型字段primary_key

序列本身由正好两个项目的迭代项组成(例如,[(A,B),(A,C)…]),作为该字段的选择。如果给出了选择,它们将通过模型验证来执行。默认表单部分将是包含这些选项的选择框,而不是标准文本字段。 每个元组中的第一个元素是要在模型上设置的实际值,第二个元素是人类可读的名称。例如: 尽管可以在模型类外部定义选择列表,然后引用它,但在模型类中定义选择和每个选择的名称可以在使用它的类中保留所有这些信息,并帮助引用这些选择(例如,Student.SOPHOMORE将在导入学生模型的任何位置工作)。 还可以将可用的选项收

m0_71592416的博客 436

Django model中设置多个字段联合唯一约束

使用Django中遇到这样一个需求,对一个表的几个字段做 联合唯一索引,例如学生表中 姓名和班级 2个字段在一起表示一个唯一记录。 Django中model部分的写法, 参见 unique-together 部分文档。 class MyModel(models.Model): field1 = models.CharField(max_length=50) field2 = model...

python的神奇之旅 4912

Django--M部分整理总结三

这部分主要是对一,二部分的补充: 包含一些高阶操作和优化方法 一,创建表 models字段和数据库字段不一致,但有一个对应关系: PS: 返回值为字段在数据库中的属性,Django字段默认的值为: 'AutoField': 'integer AUTO_INCREMENT', 'BigAutoField': 'bigint AUTO_INCREMENT', 'BinaryFi...

月守护的博客 283

Django从零开始----04模型 字段属性(选项)

null 如果是 True, Django 将在数据库中存储空值为 NULL。默认为 False。 避免在基于字符串的字段上使用 null,如 CharField 和 TextField。如果一个基于字符串的字段有 null=True,这意味着它有两种可能的“无数据”值。NULL,和空字符串。在大多数情况下,“无数据”有两种可能的值是多余的,Django 的惯例是使用空字符串,而不是 NULL。一个例外是当一个 CharField 同时设置了 unique=True 和 blank=True。在这种..

Ryuuku的博客 585
上一篇: django model 主键自增问题
下一篇: django cms 报 zh-CN/admin/目录错误
mapoor
博客等级 码龄17年 10粉丝 13原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值