zoukankan      html  css  js  c++  java
  • 外键值 on_delete / db_constraint

    #on_delete=None, #当关联的email数据被删除时候,该数据也会被删除,不存在
            #on_delete=models.CASCADE, #性质和None一样是默认删除
    
            #on_delete=models.DO_NOTHING,   #当关联的数据被删除时,自己不受影响,什么事都不做,不会报错
    
            #on_delete=models.PROTECT,   #关联保护,因为邮箱数据被用户表关联,所以该邮箱不允许被删除,并且触发ProtectError
            #Cannot delete some instances of model 'EmailInfo' because they are referenced through a protected foreign key: 'UserInfo.el'", <QuerySet [<UserInfo: UserInfo object>]>
    
            #on_delete=models.SET_NULL, #删除关联数据,自己被设置为null(前提字段需要设置为可空null=True)
            #对于测试models.SET_NULL时,我们需要先了解,对于数据库的基本字段设置,像null,max_length这些属性,我们需要重新去生成数据表,
            #对于on_delete等Django中的附属属性,我们可以动态修改,不需要重新生成数据表,所以如果我们开始并没有设置null=True(默认false),我们需要去重新生成数据表
    
            #on_delete=models.SET_DEFAULT,#删除关联数据后,会将自己的数据设置为默认值,需要设置default属性
    
            #on_delete=models.SET(3)   #和SET_DEFAULT相似,只不过不需要设置默认值,在SET()中可以直接设置
            on_delete=models.SET(set_test) #和SET一样,只不过值设为了回调函数,需要将函数设为全局,可调用
    
    db_constraint=False,这个就是保留跨表查询的便利(双下划线跨表查询```),但是不用约束字段了,一半公司都用false,这样就省的报错,因为没有了约束(Field字段对象,既约束,又建立表与表之间的关系)
  • 相关阅读:
    mergeKLists
    generateParenthesis
    removeNthFromEnd
    Codeforces Round #632 (div.2) C. Eugene and an array
    Spring中@Import的三种情况
    自定义Spring Boot starter
    Java 注解
    Eclipse安装Lombok插件
    java 类加载系统
    Centos系统中忘了root密码怎么办
  • 原文地址:https://www.cnblogs.com/Hale-wang/p/11770866.html
Copyright © 2011-2022 走看看