美文网首页
@api.depends 计算字段的使用

@api.depends 计算字段的使用

作者: 谁的代码没bug | 来源:发表于2017-07-31 15:52 被阅读0次

实现效果:

输入 周期数 周期单位 ,次数 ,检查频次自动输出内容
代码:

ocp_check_frequency= fields.Char(string="检查频次",compute='_ocp_check_frequency')
@api.depends('ocp_cycle_num','ocp_cycle','ocp_frequency')
def_ocp_check_frequency(self):
forrinself:
if notr.ocp_cycle_num:
r.ocp_check_frequency =""
elif notr.ocp_cycle:
r.ocp_check_frequency =""
elif notr.ocp_frequency:
r.ocp_check_frequency =""
else:
r.ocp_check_frequency =str(r.ocp_cycle_num) + r.ocp_cycle +str(r.ocp_frequency) +u"次"

遇到问题:
1.TypeError: unsupported operand type(s) for +: 'int' and 'str'

a = 222
b = '222'
c = a + b

如果你要数字和字符串连接的话,可以把数字通过str的方法转换成字符串的形式,然后再做连接的操作。
比如c = str(a) + b
最好的结果是:222222

2.['ascii' codec can't decode byte 0xef in position 0: ordinal not in range(128)]

在解决错误之前,首先要了解unicode和utf-8的区别。
unicode指的是万国码,是一种“字码表”。而utf-8是这种字码表储存的编码方法。unicode不一定要由utf-8这种方式编成bytecode储存,也可以使用utf-16,utf-7等其他方式。目前大多都以utf-8的方式来变成bytecode。
其次,Python中字符串类型分为byte string 和 unicode string两种。
如果在python文件中指定编码方式为utf-8(#coding=utf-8),那么所有带中文的字符串都会被认为是utf-8编码的byte string(例如:mystr="你好"),但是在函数中所产生的字符串则被认为是unicode string。
问题就出在这边,unicode string 和 byte string 是不可以混合使用的,一旦混合使用了,就会产生这样的错误。例如:
self.response.out.write("你好"+self.request.get("argu"))
其中,"你好"被认为是byte string,而self.request.get("argu")的返回值被认为是unicode string。由于预设的解码器是ascii,所以就不能识别中文byte string。然后就报错了。
以下有两个解决方法:
1.将字符串全都转成byte string。
self.response.out.write("你好"+self.request.get("argu").encode("utf-8"))
2.将字符串全都转成unicode string。
self.response.out.write(u"你好"+self.request.get("argu"))
byte string转换成unicode string可以这样转unicode(unicodestring, "utf-8")

相关文章

  • @api.depends 计算字段的使用

    实现效果: 输入 周期数 周期单位 ,次数 ,检查频次自动输出内容代码: 遇到问题:1.TypeError: un...

  • 5. 创建计算字段

    创建计算字段 计算字段 字段(field)与列的意思相同数据库列一般称列,而字段常与计算字段一起使用。 计算字段并...

  • MySQL必知必会 第10-12章

    第十章 创建计算字段 本章介绍如何创建字段,如何从应用程序中使用别名引用它们。 10.1 计算字段 字段 (fie...

  • MySQL必知必会2

    创建计算字段 使用Concat()函数拼接字段 使用trim()删除左右侧多余的空格 RTrim()删除右边空格,...

  • PGSQL的优化建议

    避免在WHERE子句中使用in,not in,or 避免对索引字段进行计算操作 避免在索引字段上使用not,<>,...

  • 《SQL必知必会》笔记(MySQL实现)---计算字段

    本文将会介绍有关于计算字段的一些定义和使用方法。 计算字段 首先举几个例子了解一下在什么场景下可能会用到计算字段 ...

  • MySQL 必知必会10-11-常用函数

    暂跳过一部分正则表达式 10 创建计算字段(函数) 使用Concat拼接字段 使用RTrim()去除字段右侧多余空...

  • Tableau的十大表计算

    使用表计算时需注意:1)要指定特定维度,这样字段拖动的时候才不会影响计算结果;2)特定维度的字段顺序会影响计算结果...

  • SQL 使用联结(一)

    连载的上一篇我们使用子查询来过滤数据、创建计算字段。但我们也发现使用子查询在性能方面的不足,尤其是在创建计算字段的...

  • Mysql 创建计算字段(七)

    本节将简单介绍什么是计算字段,如何创建计算字段以及怎样从应用程序中使用别名引用它们 拼接字段 将值联结到一起构成单...

网友评论

      本文标题:@api.depends 计算字段的使用

      本文链接:https://www.haomeiwen.com/subject/xfdrlxtx.html