对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生成文件md5校验值函数的方法
Jan 10 Python
python定向爬取淘宝商品价格
Feb 27 Python
Python cookbook(数据结构与算法)将名称映射到序列元素中的方法
Mar 22 Python
python分治法求二维数组局部峰值方法
Apr 03 Python
python操作excel文件并输出txt文件的实例
Jul 10 Python
使用Python的toolz库开始函数式编程的方法
Nov 15 Python
对Python捕获控制台输出流的方法详解
Jan 07 Python
如何基于python操作excel并获取内容
Dec 24 Python
django-csrf使用和禁用方式
Mar 13 Python
python+selenium+Chrome options参数的使用
Mar 18 Python
爬虫代理的cookie如何生成运行
Sep 22 Python
Python控制台输出俄罗斯方块的方法实例
Apr 17 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对二维数组进行排序的简单实例
2013/12/19 PHP
PHP封装的XML简单操作类完整实例
2017/11/13 PHP
Laravel 添加多语言提示信息的方法
2019/09/29 PHP
jquery 实现的全选和反选
2009/04/15 Javascript
JQuery的ajax获取数据后的处理总结(html,xml,json)
2010/07/14 Javascript
基于jQuery的让非HTML5浏览器支持placeholder属性的代码
2011/05/24 Javascript
jquery中获取元素的几种方式小结
2011/07/05 Javascript
一个获取第n个元素节点的js函数
2014/09/02 Javascript
JavaScript+html5 canvas制作色彩斑斓的正方形效果
2016/01/27 Javascript
JavaScript 2048 游戏实例代码(简单易懂)
2016/03/25 Javascript
Javascript实现倒计时时差效果
2017/05/18 Javascript
浅析node.js的模块加载机制
2018/05/25 Javascript
使用pm2部署node生产环境的方法步骤
2019/03/09 Javascript
vue踩坑记-在项目中安装依赖模块npm install报错
2019/04/02 Javascript
微信小程序封装的HTTP请求示例【附升级版】
2019/05/11 Javascript
vue项目前端知识点整理【收藏】
2019/05/13 Javascript
Vue 自定义指令实现一键 Copy功能
2019/09/16 Javascript
[05:23]DOTA2-DPC中国联赛2月1日Recap集锦
2021/03/11 DOTA
Python实现控制台进度条功能
2016/01/04 Python
python2.7无法使用pip的解决方法(安装easy_install)
2018/04/03 Python
python爬虫 使用真实浏览器打开网页的两种方法总结
2018/04/21 Python
Atom的python插件和常用插件说明
2018/07/08 Python
利用Python进行数据可视化常见的9种方法!超实用!
2018/07/11 Python
Python安装与基本数据类型教程详解
2019/05/29 Python
python 利用浏览器 Cookie 模拟登录的用户访问知乎的方法
2019/07/11 Python
使用python写的opencv实时监测和解析二维码和条形码
2019/08/14 Python
python PyQt5/Pyside2 按钮右击菜单实例代码
2019/08/17 Python
Python绘制热力图示例
2019/09/27 Python
trivago美国:全球最大的酒店价格比较网站
2018/01/18 全球购物
如何从一个文件档案的尾端新增记录
2016/12/02 面试题
既然说Ruby中一切都是对象,那么Ruby中类也是对象吗
2013/01/26 面试题
大学生求职简历的自我评价
2013/10/21 职场文书
七年级地理教学反思
2014/01/26 职场文书
教师学习培训邀请函
2014/02/04 职场文书
乔布斯斯坦福大学演讲稿
2014/05/23 职场文书
国庆横幅标语
2014/10/08 职场文书