首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

django 1.8 官方文档翻译: 2-4-4 编写迁移

网站:http://python.usyiyi.cn/django/index.html 编写数据库迁移 这一节介绍你可能遇到的在不同情况下如何分析和编写数据库迁移....这对可复用的和第三方应用极其重要。 添加唯一字段的迁移 如果你应用了一个“朴素”的迁移,向表中一个已存在的行中添加了一个唯一的非空字段,会产生错误,因为位于已存在行中的值只会生成一次。...在这个例子中,我们会以默认值添加一个非空的UUIDField字段。你可以根据你的需要修改各个字段。 把default=…和unique=True参数添加到你模型的字段中。...在第一个AddField操作中,把unique=True改为 null=True,这会创建一个中间的null字段。...(default=uuid.uuid4, unique=True), ), ] 现在你可以像平常一样使用migrate命令应用迁移。

42810

Django模型最佳实践

正确的模型命名和关系字段命名。 设置适当的related_name属性。 用OneToOneField代替ForeignKeyField(unique=True)。...存储全局唯一标识符 字段属性 通用字段属性 选项 说明 null 数据库中对应的字段是否允许为NULL,默认为False blank 后台模型管理验证数据时,是否允许为NULL,默认为False choices...error_messages 设定字段抛出异常时的默认消息的字典,其中的键包括null、blank、invalid、invalid_choice、unique和unique_for_date help_text...unique 设置为True时,表中字段的值必须是唯一的 verbose_name 字段在后台模型管理显示的名称,未指定时使用字段的名称 ForeignKey属性 limit_choices_to:值是一个...SET_NULL:把外键设置为null,当null属性被设置为True时才能这么做。 SET_DEFAULT:把外键设置为默认值,提供了默认值才能这么做。

2.3K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Django(14)模型中常用的属性(超详细)

    Field中的常用参数 每个模型的字段都允许设置参数,这些参数来自己父类Field 字段 说明 null 如果设置为True,Django将会在映射表的时候指定是否为空。默认是为False。...因为Django在处理字符串相关的Field的时候,即使这个Field的null=False,如果你没有给这个Field传递任何值,那么Django也会使用一个空的字符串""来作为默认值存储进去。...因此如果再使用null=True,Django会产生两种空值的情形(NULL或者空字符串)。如果想要在表单验证的时候允许这个字符串为空,那么建议使用blank=True。...blank 标识这个字段在表单验证的时候是否可以为空。默认是False。这个和null是有区别的,null是一个纯数据库级别的。而blank是表单验证级别的。...unique 在表中这个字段的值是否唯一。一般是设置手机号码/邮箱等。

    85430

    【Python全栈100天学习笔记】Day41 Django深入理解框架

    , null=True, blank=True, verbose_name='主管') sal = models.DecimalField(max_digits=7, decimal_places...=2, verbose_name='月薪') comm = models.DecimalField(max_digits=7, decimal_places=2, null=True, blank...存储全局唯一标识符 字段属性 通用字段属性 选项 说明 null 数据库中对应的字段是否允许为NULL,默认为False blank 后台模型管理验证数据时,是否允许为NULL,默认为False choices...error_messages 设定字段抛出异常时的默认消息的字典,其中的键包括null、blank、invalid、invalid_choice、unique和unique_for_date help_text...SET_NULL:把外键设置为null,当null属性被设置为True时才能这么做。 SET_DEFAULT:把外键设置为默认值,提供了默认值才能这么做。

    2.3K30

    模型常用属性

    ---- Field的常用参数: null: 如果设置为True,Django将会在映射表的时候指定是否为空。默认是为False。...因为Django在处理字符串相关的Field的时候,即使这个Field的null=False,如果你没有给这个Field传递任何值,那么Django也会使用一个空的字符串""来作为默认值存储进去。...因此如果再使用null=True,Django会产生两种空值的情形(NULL或者空字符串)。如果想要在表单验证的时候允许这个字符串为空,那么建议使用blank=True。...blank: 标识这个字段在表单验证的时候是否可以为空。默认是False。 这个和null是有区别的,null是一个纯数据库级别的。而blank是表单验证级别的。...unique: 在表中这个字段的值是否唯一。一般是设置手机号码/邮箱等。

    91030

    Django ORM 知识概要

    verbose_name='别名或者注释' unique=True null=True,blank=True db_index=True 给表单建立索引 help_text='' 表单中显示帮助信息...editable=False 表单不可编辑 个别字段才有的参数 给CharField 指定最大长度 max_length=100 时间 unique_for_date=True unique_for_month...SET_NULL:将引用设置为NULL(要求字段可以为空),当字段设置null=True才可以使用 SET_DEFAULT:设置默认值。...规则管理模型类 默认是True unique_together=()/((),()) 对应MySQL中的联合唯一约束 app_label 指定模型属于哪个应用(如果在settings里面已经注册过应用的话...使用filter 过滤 其它操作 exists(),count(),aggregate() 判断是否存在,统计个数,聚合 aggregate() 是对这个数据表中的数据进行统计 自定义聚合查询 F对象和Q

    1.8K20

    Django进阶-2-ORM字段

    Django 提供了很多字段类型,比如 URL/Email/IP/ 但是 mysql 数据没有这些类型,这类型存储到数据库上本质是字符串数据类型,主要目的是为了封装底层 SQL 语句。...① 字符串类 EmailField(CharField) IPAddressField(Field) URLField(CharField) SlugField(CharField) UUIDField...char 和 varchar 的区别 char 和 varchar 的共同点是存储数据的长度,不能超过 max_length 限制;不同点是 varchar 根据数据实际长度存储,char 按指定 max_length...② 时间字段 models.DateTimeField(null=True) date = models.DateField() ③ 数字字段 # 总长度最大30位,小数位10位 (max_digits...# 设置唯一索引 unique(唯一) = True # 联合唯一索引 class Meta: unique_together = ( ('email', 'name'), )

    58820

    drf序列化器之反序列化的数据验证

    在获取反序列化的客户端数据前,必须在视图中调用序列化对象的is_valid()方法,序列化器内部是在is_valid方法内部调用验证选项和验证方法进行验证,验证成功返回True,否则返回False。...,则下面的18~21行代码,就不要开发者自己编写,系统会自动根据请求的方式自动返回错误给客户端。...=False, trim_whitespace=True) EmailField EmailField(max_length=None, min_length=None, allow_blank=False...=200, min_length=None, allow_blank=False) UUIDField UUIDField(format='hex_verbose') format: 1) 'hex_verbose...default 反序列化时使用的默认值 allow_null 表明该字段是否允许传入None,默认False validators 该字段使用的验证器 error_messages 包含错误编号与错误信息的字典

    2.1K30
    领券