鱼C论坛

 找回密码
 立即注册
查看: 2371|回复: 14

[已解决]不管数据类型,某个字段值设为False含义

[复制链接]
发表于 2017-7-12 22:53:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 只为 于 2017-7-12 22:56 编辑

  1. pg_sourcing = fields.Many2one('purchase.group', string='Sourcing PG')
  2. @api.onchange('owner_sourcing')
  3. def _onchange_owner_sourcing(self):
  4.      self.pg_sourcing = False
  5.      if self.owner_sourcing:
  6.          self.pg_sourcing = self.owner_sourcing.purchase_group_id
复制代码



不论数据类型是什么,是Many2one,Date,int或者其他数据类型,把该字段值设为False,意思是什么,一般什么时候这样用?
最佳答案
2017-7-13 16:04:11
只为 发表于 2017-7-13 16:00
难道设为False,只是为了条件判断的时候方便?

一般这种变量的都是预先定义一个值比如False,None。如果后面能正常获取可以处理的值,那么就重新赋值,如果获取不到正确的值,就用预先设定的值抛出异常。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-7-13 07:03:53 | 显示全部楼层
false是个布尔值,假对象的意思
一般if或while中常见
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-13 09:25:09 | 显示全部楼层
新手·ing 发表于 2017-7-13 07:03
false是个布尔值,假对象的意思
一般if或while中常见

我知道你说的这个.
我代码中展示的 设为False值的这个,可不是布尔类型的数据.
我想问不是布尔类型的数据,赋值为False,是什么意思
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-13 15:19:11 | 显示全部楼层
只为 发表于 2017-7-13 09:25
我知道你说的这个.
我代码中展示的 设为False值的这个,可不是布尔类型的数据.
我想问不是布尔类型的数 ...

你是说赋值的对象.......
就是把False赋值给一个变量啊
方便以后使用
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-13 15:41:27 | 显示全部楼层
你只需要考察,if self.owner_sourcing:不成立时候,self.pg_sourcing的作用就行了。一般就是返回一个错误之类的。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-13 16:00:13 | 显示全部楼层
ooxx7788 发表于 2017-7-13 15:41
你只需要考察,if self.owner_sourcing:不成立时候,self.pg_sourcing的作用就行了。一般就是返回一个错误 ...

难道设为False,只是为了条件判断的时候方便?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-13 16:04:11 | 显示全部楼层    本楼为最佳答案   
只为 发表于 2017-7-13 16:00
难道设为False,只是为了条件判断的时候方便?

一般这种变量的都是预先定义一个值比如False,None。如果后面能正常获取可以处理的值,那么就重新赋值,如果获取不到正确的值,就用预先设定的值抛出异常。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-13 16:18:28 | 显示全部楼层
ooxx7788 发表于 2017-7-13 16:04
一般这种变量的都是预先定义一个值比如False,None。如果后面能正常获取可以处理的值,那么就重新赋值, ...

即使预先定义一个值不也是需要跟他的数据类型一致吗,比如str的预先定义,我会定义"",不会是Fasle或0,即使定义False或0应该报错的吧.
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-13 16:24:26 | 显示全部楼层
只为 发表于 2017-7-13 16:18
即使预先定义一个值不也是需要跟他的数据类型一致吗,比如str的预先定义,我会定义"",不会是Fasle或0,即使 ...

不需要,因为重新赋值的时候,变量类型自动就改变了啊。并不是在原有的基础上进行改动。
这种思路和求水仙花数的那种定义一个sum是不一样的。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-13 16:27:59 | 显示全部楼层
ooxx7788 发表于 2017-7-13 16:24
不需要,因为重新赋值的时候,变量类型自动就改变了啊。并不是在原有的基础上进行改动。
这种思路和求水 ...

那python这中重新赋值不检查数据类型的有什么好处?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-13 16:29:25 | 显示全部楼层
只为 发表于 2017-7-13 16:27
那python这中重新赋值不检查数据类型的有什么好处?

这我没法回答你了,因为python本身也不需要定义数据类型啊。这不是动态语言嘛。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-13 16:39:56 | 显示全部楼层
ooxx7788 发表于 2017-7-13 16:29
这我没法回答你了,因为python本身也不需要定义数据类型啊。这不是动态语言嘛。

每个字段定义的时候,如:fields.Char(''),这个算是定义数据类型了吧.我贴出来的代码中是fields.Many2one,后来设置成bool类型的False,所以很疑惑的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-13 16:48:27 | 显示全部楼层
只为 发表于 2017-7-13 16:39
每个字段定义的时候,如:fields.Char(''),这个算是定义数据类型了吧.我贴出来的代码中是fields.Many2one, ...

以我简单的理解,其实在python中你只要注意=的出现,一旦出现=号,不管之前这个变量是什么类型,什么内容,只要=号出现了,就重新赋值了。跟以前的类型,内容再没有关系。而且这里你需要注意的是,self.pg_sourcing和pg_sourcing并不是一回事。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-13 17:04:39 | 显示全部楼层
ooxx7788 发表于 2017-7-13 16:48
以我简单的理解,其实在python中你只要注意=的出现,一旦出现=号,不管之前这个变量是什么类型,什么内容 ...

self.pg_sourcing和pg_sourcing为什么并不是一回事?
我的理解,self代表这个模型的实例,self.pg_sourcing应该就是或者当前实例的这个属性值
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-13 17:07:09 | 显示全部楼层
只为 发表于 2017-7-13 17:04
self.pg_sourcing和pg_sourcing为什么并不是一回事?
我的理解,self代表这个模型的实例,self.pg_sourcing ...

self.pg_sourcing是实例属性
pg_sourcing你这里虽然没有写的很清楚,但可以肯定的是他和实例无关,如果是在类下面的就是类属性。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-2-28 15:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表