对django 模型 unique together的示例讲解


Posted in Python onAugust 06, 2019

unique_together

这个元数据是非常重要的一个!它等同于数据库的联合约束!

举个例子,假设有一张用户表,保存有用户的姓名、出生日期、性别和籍贯等等信息。要求是所有的用户唯一不重复,可现在有好几个叫“张伟”的,如何区别它们呢?(不要和我说主键唯一,这里讨论的不是这个问题)

我们可以设置不能有两个用户在同一个地方同一时刻出生并且都叫“张伟”,使用这种联合约束,保证数据库能不能重复添加用户(也不要和我谈小概率问题)。在Django的模型中,如何实现这种约束呢?

使用unique_together,也就是联合唯一!

比如:

unique_together = (('name', 'birth_day', 'address'),)

这样,哪怕有两个在同一天出生的张伟,但他们的籍贯不同,也就是两个不同的用户。一旦三者都相同,则会被Django拒绝创建。这一元数据经常被用在admin后台,并且强制应用于数据库层面。

unique_together接收一个二维的元组((xx,xx,xx,...),(),(),()...),每一个元素都是一个元组,表示一组联合唯一约束,可以同时设置多组约束。为了方便,对于只有一组约束的情况下,可以简单地使用一维元素,例如:

unique_together = ('name', 'birth_day', 'address')

联合唯一无法作用于普通的多对多字段。

以上这篇对django 模型 unique together的示例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python共享引用(多个变量引用)示例代码
Dec 04 Python
Python数据类型学习笔记
Jan 13 Python
Python找出list中最常出现元素的方法
Jun 14 Python
更改Ubuntu默认python版本的两种方法python-> Anaconda
Dec 18 Python
利用python求相邻数的方法示例
Aug 18 Python
Python三级菜单的实例
Sep 13 Python
Python实现的多线程同步与互斥锁功能示例
Nov 30 Python
在cmd命令行里进入和退出Python程序的方法
May 12 Python
Python面向对象程序设计OOP深入分析【构造函数,组合类,工具类等】
Jan 05 Python
python字典和json.dumps()的遇到的坑分析
Mar 11 Python
python实现简易版学生成绩管理系统
Jun 22 Python
pytorch 实现多个Dataloader同时训练
May 29 Python
python django model联合主键的例子
Aug 06 #Python
django多文件上传,form提交,多对多外键保存的实例
Aug 06 #Python
详解python中的index函数用法
Aug 06 #Python
详解python 利用echarts画地图(热力图)(世界地图,省市地图,区县地图)
Aug 06 #Python
对Django url的几种使用方式详解
Aug 06 #Python
Python 保持登录状态进行接口测试的方法示例
Aug 06 #Python
解决Django 在ForeignKey中出现 non-nullable field错误的问题
Aug 06 #Python
You might like
PHP面向对象之旅:深入理解static变量与方法
2014/01/06 PHP
新浪微博OAuth认证和储存的主要过程详解
2015/03/27 PHP
php 截取utf-8格式的字符串实例代码
2016/10/30 PHP
php curl简单采集图片生成base64编码(并附curl函数参数说明)
2019/02/15 PHP
JQuery插件Style定制化方法的分析与比较
2012/05/03 Javascript
JavaScript的继承的封装介绍
2013/10/15 Javascript
Jquery树插件zTree用法入门教程
2015/02/17 Javascript
JavaScript使用push方法添加一个元素到数组末尾用法实例
2015/04/06 Javascript
深入理解JavaScript程序中内存泄漏
2016/03/17 Javascript
基于jquery实现ajax无刷新评论
2020/08/19 Javascript
js转换对象为xml
2017/02/17 Javascript
vue.js 实现图片本地预览 裁剪 压缩 上传功能
2018/03/01 Javascript
浅谈关于iview表单验证的问题
2018/09/29 Javascript
Nuxt.js SSR与权限验证的实现
2018/11/21 Javascript
layui table 表格模板按钮的实例代码
2019/09/21 Javascript
Vue 实现监听窗口关闭事件,并在窗口关闭前发送请求
2020/09/01 Javascript
Python中编写ORM框架的入门指引
2015/04/29 Python
python列表的常用操作方法小结
2016/05/21 Python
Python循环语句中else的用法总结
2016/09/11 Python
scrapy爬虫完整实例
2018/01/25 Python
selenium 多窗口切换的实现(windows)
2020/01/18 Python
python数据预处理 :样本分布不均的解决(过采样和欠采样)
2020/02/29 Python
opencv+python实现鼠标点击图像,输出该点的RGB和HSV值
2020/06/02 Python
css3闪亮进度条效果实现思路及代码
2013/04/17 HTML / CSS
CSS3盒子模型详解
2013/04/24 HTML / CSS
Fossil加拿大官网:化石手表、手袋、首饰及配饰
2019/04/23 全球购物
Pureology官网:为染色头发打造最好的产品
2019/09/13 全球购物
C#里面如何倒序排列一个数组的元素?
2013/06/21 面试题
企划主管岗位职责
2013/12/12 职场文书
高中教师先进事迹材料
2014/08/22 职场文书
知识就是力量演讲稿
2014/09/13 职场文书
行政复议决定书
2015/06/24 职场文书
关爱留守儿童主题班会
2015/08/13 职场文书
golang http使用踩过的坑与填坑指南
2021/04/27 Golang
React四级菜单的实现
2022/04/08 Javascript
Java实现添加条码或二维码到Word文档
2022/06/01 Java/Android