简化OpenERP开发的小型实用程序

openerp-sane的Python项目详细描述


openerp sane是一个小型实用程序的集合,使openerp development看起来不像是古老的 到处是血和内脏的战争,更像是Python。

现在,有两个实用程序:@oemeths2d/d2s(日期转换)。那@oemeth 方法decorator,它理顺了模型中著名的ids参数 方法。示例:

defmyaction(self,cr,uid,ids,context=None):pass

通常,ids应该是int的列表,但是有时,只是,有时,我们得到 一个裸体的int,然后我们的方法崩溃。我们必须添加如下代码:

ifisinstance(ids,(int,long)):ids=[ids]

除此之外,还有另一个烦恼:为什么,哦why我所有的方法都必须处理案例 有多个ids?当我对表单中的某个按钮执行操作时,我know它只是 一次处理一个身份证。我可以很容易地做到ids[0],但是如果我真的想 安全起见,我将首先确保ids是一个列表。你不厌倦那可笑的事吗 跳舞?所以我们才有@oemeth

安装

你已经迫不及待地要开始在你的模块中使用它了,对吧?openerp sane可以从pypi安装:

$ pip install openerp-sane

当您在模块中使用它时,可以在__openerp__.py

{# [...]'external_dependencies':{'python':['openerp_sane'],},# [...]}

@冰毒

@oemeth是一个方法修饰符,它接受2个(可选,默认为False)参数: singlebrowse。默认情况下,它只是确保ids是一个列表:

fromopenerp_saneimportoemeth# [...]@oemethdefmyaction(self,cr,uid,ids,context=None):# Write code that assumes ids is a list

使用singleTrue,我们强制使用单个intid:

@oemeth(single=True)defmyaction(self,cr,uid,objid,context=None):# objid is an ``int``.# WARNING: Use this only when you're sure that you'll only ever have single arguments.# If the input is a list with a len() != 1, an exception is raised.

使用browseTrue,我们将id包装在self.browse()调用中:

@oemeth(browse=True)defmyaction(self,cr,uid,objs,context=None):# objs is a list of browse records

S2D/D2S

s2d()d2s()(意思是“字符串到日期”和“日期到字符串”)可以减轻 当我们不得不处理和比较日期时,我们面临着可怕的问题。没有这些帮手, 我们必须手动转换那些正确的日期格式,这可以得到沉重的快速。

s2d(string_date)从日期字段获取字符串值并返回datetime.date。如果 它不能解析它,它返回False

d2s(date)接受一个datetime.date并返回一个可以写入日期字段的字符串。 如果date不是日期,则返回False(也可以写入日期字段)。

在这两个函数中,我们都使用oe的DEFAULT_SERVER_DATE_FORMAT常量。

一点点智慧

不要在^{tt35}上使用single(这要求始终只有一个id)$ 方法。当然,大多数情况下你只有一个身份证,但是如果你的电话记录是 尚未提交,您将获得零ID,这将引发异常。在未来,也许 single模式将支持零id情况。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Log4j:运行服务器日志时发出警告   ssl与Java通信到TLSEncypted CUPS打印服务器   Guice Java提供的方法没有已知的依赖关系?   java Android:EditText的默认文本大小是多少?   更正错误字符串的Java异常   string Java如何从来自多个源的数据推断类型   从路径错误创建java文件   java获取不同类安卓中切换按钮的状态   java扩展AnyVal和AnyRef的对象的内存分配有什么不同   java如何从callable(即runnable)获取类名   java Hornetq大量消息填满了磁盘空间   用java从excel中读取一行的多列?   java不使用JAXB将映射转换为XML   java将多个图像与一个图像进行比较   当X扩展Y时,javax不适用于参数Y   运行时jar文件中未显示java Python输出   JavaSpringMVC3:定义自己的DatatypeBinding   java从fragment类调用activity函数给出了NPE   java在时区、日历和SimpleDataFormat方面存在奇怪的问题