django作models的UPDATE时,注意有过滤外键的情况

就是如果要过滤的时候,存在外键,则需要取到原始字段的名称,不然就是ID。

原始名称以__(双下划线)引用。

如:

def path2db(release_version, develop_version, servername, salt_path):
    print "begin update sql..................................."
    print release_version, develop_version, servername, salt_path
    Code_Release.objects.filter(release_version__name=release_version).filter(develop_version=develop_version).filter(module__name=servername).update(salt_module_path=salt_path)
    print "end update sql..........................."

 

时间: 2024-12-20 14:10:40

django作models的UPDATE时,注意有过滤外键的情况的相关文章

ubuntu-Ubuntu10.04 执行sudo apt-get update时无法连接

问题描述 Ubuntu10.04 执行sudo apt-get update时无法连接 我的系统是Ubuntu10.04,网络连接正常.在执行sudo apt-get update 时出现出现无法连接的问题:部分截屏如下 : 请各位帮个忙,实在不知道怎么整么了? 解决方案 sudo apt-get updatesudo apt-get updateubuntu执行sudo apt-get update时出现"Hash校验和不符" 解决方案二: 对应的源访问不了了,你需要添加新的repo

使用MongoDB3.2.6 64位update时出错

问题描述 使用MongoDB3.2.6 64位update时出错 如图 ,使用update更新时出错 解决方案 db.test0.update( { "count" : { $gt : 1 } } , { $set : { "test2" : "OK"} } ); 你用双引号试试 解决方案二: update时使用子查询出错

ubuntu更新apt-get update时的索引文件获取错误解决办法

ubuntu更新apt-get update时的索引文件获取错误.以前遇到类似的问题,学习下,哈哈 当运行apt-get update后出现如下错误时: E: Some index files failed to download, they have been ignored, or old ones used instead. 可以将目录下/var/lib/apt/lists/partial/所有的文件清掉,再次运行apt-get update即可!

Django REST framework 的TokenAuth认证及外键Serializer基本实现

  一,Models.py中,ForeignKey记得要有related_name属性,已实现关联对象反向引用. app_name = models.ForeignKey("cmdb.App",related_name='deploy_app', verbose_name="App")   二,Settings.py文件中,加入对Django REST framework的基本设置. REST_FRAMEWORK = { 'DEFAULT_PERMISSION_CL

实现删除主表数据时, 判断与之关联的外键表是否有数据

问题描述:某个基础信息表,与系统中30多个表存在外键关系,当删除基础数据时,需要判断是否已经被用过,如果用过则更改标志位,如果没有用过则直接删除,如何能很好实现这个处理?最好能够自动适应表的变化 问题解决(SQL Server 2005)-- SQL Server 2005的错误处理容易控制, 因此, SQL Server 2005中可以直接删除, 通过错误处理来确定是否需要更新. -- 示例如下.USE tempdbGO CREATE TABLE m(    id int PRIMARY KE

Oracle外键约束修改行为(四)如何实现UPDATE CASCADE

Oracle的外键用来限制子表中参考的字段的值,必须在主表中存在.而且在主表的记录发生变化导致外键参考唯一约束值发生了变化时,定义了一系列的动作.    这篇描述一下如何实现UPDATE CASCADE.         前面几篇文章介绍了Oracle所支持的3种约束行为NO ACTION.DELETE SET NULL和DELETE CASCADE.    至于SQL标准中定义的其他操作,Oracle只能通过触发器来实现,这里给出一个简单的UPDATE CASCADE操作的例子.    SQL

Oracle外键约束修改行为(五)实现UPDATE SET NULL

Oracle的外键用来限制子表中参考的字段的值,必须在主表中存在.而且在主表的记录发生变化导致外键参考唯一约束值发生了变化时,定义了一系列的动作. 这篇描述一下如何实现UPDATE SET NULL. 前面几篇文章介绍了Oracle所支持的3种约束行为NO ACTION.DELETE SET NULL和DELETE CASCADE. 至于SQL标准中定义的其他操作,Oracle只能通过触发器来实现,这里给出一个简单的UPDATE SET NULL操作的例子.    SQL> DROP TABLE

entity删除实体时,如何置空外键。

问题描述 例如商品分类和商品明细.当删除商品分类时,如何将商品明细对应商品分类的的外键置空?在sqlServer里,可以手动设置为删除时置空,但如此操作太麻烦,能否在model实体中加标记或者在context中加代码实现? 解决方案 解决方案二:外键的属性中就有主表删除时,子表外键置空的选项,不知道楼主说的手动是什么意思解决方案三:楼主说的那个属性是在sqlServer里设置的吧,这个我知道.能不能在entity里直接配置这个.我记得以前看到entity介绍时提到过,设置为可空的外键时,删除实体

MySQL修改外键删除时操作出现error 121如何解决

环境:MySQL Server 5.1 + Navicat for Mysql 8.2 问题:修改外键删除时操作出现121错误 解决: 把外键名改为 其他名字. 错误信息参考: error 121 这是外关键字名字重复的错误,即使是在不同的表 中,外关键字的名字也不能重复. error 150 这类错误包括3种情况: 1. 外键和被引用外键类型不 一样,比如integer和double: 2. 找不到要被引用的列: 3. 表的字符编码不一样. 查看本栏目更多精彩内容:http://www.bia