对django 模型 unique together的示例讲解
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的示例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
django model去掉unique_together报错的解决方案
事情是这样的,我有一个存储考试的表 class Exam(models.Model): category = cached_fields.ForeignKeyField(Category) name = models.CharField(max_length=128) date = models.DateField() created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(au
-
对django 模型 unique together的示例讲解
unique_together 这个元数据是非常重要的一个!它等同于数据库的联合约束! 举个例子,假设有一张用户表,保存有用户的姓名.出生日期.性别和籍贯等等信息.要求是所有的用户唯一不重复,可现在有好几个叫"张伟"的,如何区别它们呢?(不要和我说主键唯一,这里讨论的不是这个问题) 我们可以设置不能有两个用户在同一个地方同一时刻出生并且都叫"张伟",使用这种联合约束,保证数据库能不能重复添加用户(也不要和我谈小概率问题).在Django的模型中,如何实现这种约束呢?
-
通过数据库向Django模型添加字段的示例
首先借用书本(book)的这个数据模型: from django.db import models class Publisher(models.Model): name = models.CharField(max_length=30) address = models.CharField(max_length=50) city = models.CharField(max_length=60) state_province = models.CharField(max_length=30)
-
django表单实现下拉框的示例讲解
方法一: queue = forms.ModelChoiceField(label=u'队列',queryset=Queue.objects.all()) 方法二: class ServerForm(forms.Form): queue = forms.ChoiceField(label=u'队列') def __init__(self,*args,**kwargs): super(ServerForm,self).__init__(*args,**kwargs) self.fields['qu
-
Django 使用Ajax进行前后台交互的示例讲解
本文要实现的功能是:根据下拉列表的选项将数据库中对应的内容显示在页面,选定要排除的选项后,提交剩余的选项到数据库. 为了方便前后台交互,利用了Ajax的GET和POST方法分别进行数据的获取和提交. 代码如下: <!--利用获取的数据进行表单内容的填充--> <script> $("#soft_id").change(function(){ var softtype=$("#soft_id").find("option:select
-
django模型动态修改参数,增加 filter 字段的方式
我就废话不多说啦,还是直接看代码吧! kwargs = { # 动态查询的字段 } # 选择deleted_datetime为空的记录 if exclude_deleted: kwargs[ 'deleted_datetime__isnull' ] = True # 选择特的category if category is not None: kwargs[ 'category' ] = category # 特定的用户 if current_user_only: kwargs[ 'user' ]
-
Django实现简单登录的示例代码
目录 创建django项目 使用模型的url.py 加载静态文件 页面跳转 创建数据库模型 提交 表单提交 ajax提交 创建django项目 创建项目的命令行语句: django-admin startproject newsManage 将templates文件放在模板里面,会显得更简洁一些,所以我就先创建模板啦. 命令行语句:django-admin startapp newsModel 创建好模型把模型名加到setting文件下 INSTALLED_APPS 里面 , 不然到时候会报错说
-
pytorch实现mnist分类的示例讲解
torchvision包 包含了目前流行的数据集,模型结构和常用的图片转换工具. torchvision.datasets中包含了以下数据集 MNIST COCO(用于图像标注和目标检测)(Captioning and Detection) LSUN Classification ImageFolder Imagenet-12 CIFAR10 and CIFAR100 STL10 torchvision.models torchvision.models模块的 子模块中包含以下模型结构. Ale
-
Python计算IV值的示例讲解
在对变量分箱后,需要计算变量的重要性,IV是评估变量区分度或重要性的统计量之一,python计算IV值的代码如下: def CalcIV(Xvar, Yvar): N_0 = np.sum(Yvar==0) N_1 = np.sum(Yvar==1) N_0_group = np.zeros(np.unique(Xvar).shape) N_1_group = np.zeros(np.unique(Xvar).shape) for i in range(len(np.unique(Xvar)))
-
Django模型中字段属性choice使用说明
今天设计models时,用到了choice这个属性,用来限制用户做出选择的范围.比如说性别的选择(男或女). class User(AbstractUser): ... sex = models.CharField(verbose_name='性别',max_length=5,choices=(('male','男'),('female','女')),default='male') choice接收一个元组(保证值不可变),同理每一个选项也是由一个元组(value,display_name)构成
-
Django用户身份验证完成示例代码
在这篇Django文章中,wom 将讨论Django User 验证,Django附带了一个用户认证系统. 它处理用户帐户,组,权限和基于cookie的用户会话. Django身份验证系统同时处理身份验证和授权. 简要地说,身份验证将验证用户是他们声称的身份,而授权则确定允许经过身份验证的用户执行的操作. 基本上,我们将创建登录,注销,忘记密码和重置密码功能. 身份验证支持在django.contrib.auth中为Django contrib模块.默认情况下,所需的配置已包含在django-a
随机推荐
- ES6中如何使用Set和WeakSet
- JSP Spring配置文件中传值的实例详解
- discuz 任意管理员密码漏洞利用工具 vbs代码
- sqlserver中drop、truncate和delete语句的用法
- AngulerJS学习之按需动态加载文件
- js判断选择时间不能小于当前时间的示例代码
- jQuery正则表达式的使用方法步骤详解
- 设置高级NTFS权限的工具 XCACLS.vbs
- Vue.js结合Ueditor富文本编辑器的实例代码
- 在Python中处理字符串之isdigit()方法的使用
- javascript 另一种图片滚动切换效果思路
- asp.net Web Service 接口大量数据传输解决方案
- JSP判断移动设备的正则
- 关于Python元祖,列表,字典,集合的比较
- 从URL中提取参数与将对象转换为URL查询参数的实现代码
- 使用javascript将时间转换成今天,昨天,前天等格式
- 基于为何我不喜欢用Path.Combine的详解
- IIS设置CACHE过期时间的教程
- 简单理解Java的抽象类
- Java命令设计模式详解