首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何根据条件odoo 12对选择字段使用get default方法?

在Odoo 12中,可以使用get default方法根据条件对选择字段进行设置。get default方法是Odoo中用于设置字段默认值的一种机制。

要根据条件使用get default方法,可以按照以下步骤进行操作:

  1. 首先,在你的模型类中定义一个方法,该方法将作为get default方法。例如,假设你的模型类名为"my.model",你可以在该类中添加如下方法:
代码语言:txt
复制
class MyModel(models.Model):
    _name = 'my.model'

    @api.model
    def _get_default_field(self):
        # 在这里编写根据条件设置默认值的逻辑
        if self.env.context.get('condition'):
            return 'value1'
        else:
            return 'value2'
  1. 接下来,在你的选择字段中使用该get default方法。例如,假设你有一个名为"my_field"的选择字段,你可以在该字段的定义中使用get default方法:
代码语言:txt
复制
class MyModel(models.Model):
    _name = 'my.model'

    my_field = fields.Selection([
        ('value1', 'Value 1'),
        ('value2', 'Value 2'),
    ], default=_get_default_field)

在上述代码中,我们将default参数设置为_get_default_field方法,这样在创建新记录时,根据条件将自动设置选择字段的默认值。

需要注意的是,get default方法应该定义在模型类中,并使用@api.model装饰器进行修饰。该方法可以访问self.env.context对象,以便根据上下文中的条件进行逻辑判断。

以上是根据条件在Odoo 12中使用get default方法对选择字段进行设置的方法。如果你想了解更多关于Odoo 12的信息,可以参考腾讯云的Odoo产品介绍页面:Odoo产品介绍

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

odoo ORM API学习总结兼orm学习教程

参数: comodel_name (str) – 目标模型的名称 inverse_name (str) – 目标模型中反向Many2one字段名称,根据字段反向查询记录 domain – 用于设置客户端候选值的条件...这可能会导致在多条记录中选择一条记录的方法产生不直观的结果,例如获取默认公司或选择物料清单。...返回 新记录 Model.default_get(fields_list) → default_values[源代码] 返回fields_list中字段的默认值。..., 值必须匹配选择值(通常为str,有时为int) 对于odoo.fields.Many2one,值必须为记录的数据库标识 其它非关系字段使用字符串值 危险 出于历史和兼容性原因,odoo.fields.Date...这些日期字符串仅为UTC格式,并根据odoo.tools.misc.DEFAULT_SERVER_DATE_FORMAT和odoo.tools.miisc.DEFAULT_SERVER _DATETIME_FORMAT

13.4K10
  • odoo 开发入门教程系列-模块交互

    链接模块(Link Module) 此类使用案例的常见方法是创建“链接”模块。在我们的案例中,该模块依赖estate 和account,包括房产的发票创建逻辑。...不幸的是,没有一种简单的方法可以知道如何Odoo中创建任何给定的对象。大多数时候,有必要查看其模型,以找到所需的字段并提供适当的值。 学习的一个好方法是看看其他模块是如何完成你想做的事情的。...create 方法不接受结果集作为字段值。...将发票行链接到发票的最简单、最有效的方法是在创建发票时包含所有行。为此在account.move创建中包含invoice_line_ids字段,这是一个One2many字段。..._get_default_journal() if not journal: raise UserError('Please define an accounting

    1.7K10

    odoo 开发入门教程系列-QWeb简史

    构建列表视图很简单,因为只需要字段列表。表单视图也是如此:尽管使用了一些标记,如或,但在设计方面几乎没有什么可做的。...Odoo自带内置引擎:QWeb模板。QWeb是Odoo使用的主要模板引擎。它是一个XML模板引擎,主要用于生成HTML片段和页面。 你可能已经在Odoo见过 看板,其中的记录以卡片状结构显示。...练习--制作一个最小的看版视图 根据上述提供的简单例子,为房产创建一个最小化的看板视图。唯一展示的字段为name....如果我们想有条件的展示元素,可以使用 t-if指令(查看 Conditionals)....每个字段都有两个属性 value 和raw_value。前者是根据当前用户参数格式化的,后者则是直接通过read()读取的。

    2.1K20

    odoo 权限管理学习总结

    如何区分用户类型以及如何做权限控制的呢?...(2, ID, values) 使用values字典中的值更新id值=ID的现有记录 (2, ID) 删除id=ID这条记录(调用unlink方法,删除数据及整个主从数据链接关系) (3, ID) 删除主从数据的链接关系但是不删除这个记录...可以简单的理解为指定过滤条件,用户只能访问符合本过滤条件的记录,配置为 [(1,'=',1)]则表示匹配所有记录。...如果当前用户不在列出的组中,他将无权访问该字段: 将自动从请求的视图中删除受限制的字段 从fields_get()响应中删除受限制的字段 尝试(显式的)读取或写入受限字段会导致访问错误 修改estate...方法,可以重写此方法以控制xml显示的效果(参考网络资料,未实践验证) 按钮权限(按钮级别) 类似字段权限控制,仅需在在对应视图中,为目标按钮元素,添加groups属性即可。

    10.1K20

    odoo 开发入门教程系列-计算的字段和变更(Computed Fields And Onchanges)

    然而,我们可能需要给定模型中字段之间的链接。有时,一个字段的值是根据其他字段的值确定的,有时我们希望帮助用户输入数据。...依赖(Dependencies) 计算的字段的值通常取决于计算记录中其他字段的值。ORM期望开发人员使用修饰符depends()指定计算方法上的依赖项。...每当修改字段的某些依赖项时,ORM使用给定的依赖项来触发字段的重新计算 from odoo import api, fields, models class TestComputed(models.Model...可以使用.(比如 record.name)访问单条记录的字段或者给字段赋值。...title': _("Warning"), 'message': ('This option is not supported for Authorize.net')}} 如何使用它们

    3.1K30

    odoo 开发入门教程系列-基本视图

    筛选器必须具有以下属性之一: domain:将给定domain添加到当前搜索 dontext:添加一些context到当前搜索,使用group_by按给定字段名称对结果分组。...在odoo中,domain对记录上的条件进行编码:domain是用于选择模型记录子集的条件列表。每个条件都是一个包含字段名、运算符和值的三元组。...如果指定字段满足作用于值的运算符的条件,则记录满足条件。...例如,当在Product模型上使用时,以下domain选择单价高于1000的所有services: [('product_type', '=', 'service'), ('unit_price', '...=','en_US'), ('country_id.code','in', ['be', 'de'])] 波兰表示法简介 Odoo使用了波兰表示法,简单来说,波兰表示法是一种操作符置于操作数前,并且不需要括号仍然能无歧义地解析表达的方法

    3.3K40

    odoo 开发入门教程系列-继承(Inheritance)

    在介绍特定的Odoo模块继承之前,让我们看看如何更改标准CRUD(创建、检索,更新或删除)方法的行为 Python继承(Python Inheritance) 目标: 不能删除状态不为New、Canceled...当你需要使用一条被修改后的结果集调用父方法时,可能需要使用后者。 危险提示 总是调用 super()以避免中断流非常重要。只有少数非常特殊的情况才无需调用它。 总是返回和父方法一致的数据。...第一继承机制允许模块通过以下方式修改在另一个模块中定义的模型的行为: 向模型添加字段 覆盖模型中字段的定义 给模型添加约束 给模型添加方法 重写模型中的现有方法 第二种继承机制...odoo中,第一种机制最常用。在我们的例子中,我们希望向现有模型添加一个字段,这意味着我们将使用第一种机制。...扩展视图使用inherit_id字段引用其父视图。

    2.2K20

    odoo 开发入门教程系列-约束(Constraints)

    我们现在可以将按钮链接到业务代码,但如何防止用户输入错误的数据?例如,在我们的房地产模块中,没有什么可以阻止用户设置负预期价格。...odoo提供了两种设置自动验证恒定式的方法:Python约束 and SQL约束。...Python约束定义为用 constrains()修饰的方法,并在记录集上调用。修饰符指定约束中涉及哪些字段。当修改这些字段中的任何字段时,将自动计算约束。...如果不满足该方法的恒定式,则该方法将引发异常: from odoo.exceptions import ValidationError ......警告 当和浮点数打交道时,总是使用odoo.tools.float_utils导入的float_compare() 和float_is_zero()方法 确保每次售价或者预期价格改变时,自动触发约束

    1.5K20

    odoo 开发入门教程系列-一些用户界面

    服务,查看效果 字段,属性和视图(Fields, Attributes And View) 到目前为止,我们只对房产广告使用了通用视图,但在大多数情况下,我们希望对视图进行微调。...预期效果可参考该动画连接:https://www.odoo.com/documentation/14.0/zh_CN/_images/attribute_and_default.gif 默认值 可以为任何字段设置默认值..., default= lambda self: fields.Datetime.today()) 重启服务和并刷新浏览器界面验证 保留字段 参考: 主题相关文档可参考 保留字段名称. odoo为预定义行为保留了一些字段名称...练习 -- 添加state字段 为estate.property model添加state 字段(字段名可自定义),一个选择列表。...字段 active = fields.Boolean('Active', default=True, invisible=True) # 注意:实践发现,invisible字段不起作用

    2.9K30

    Odoo 基础教程系列」第三篇——从 Todo 应用开始(2)

    选择字段 在上一篇教程中,我们已经创建好了待办事项的模型,但是只是添加了「描述」和「已完成?」两个字段,这肯定是不能满足我们的需求的。...='todo', string='紧急程度') 我们添加了一个 Selection 类型的字段 priority,并且指定了三个可供选择的程度类型,一般情况下,如果一个字段只有固定的几种可选值,通常都会选择使用...这个需求跟时间有关,并且时间是流动(一直在变化)的,所以我们应该要有一个方法在用户每次打开待办事项之前,把这个结果计算好,并且反馈给用户,还好 Odoo 的 ORM 已经为我们实现了相关的机制——计算字段...,只不过多了一个 compute 属性,它的值是计算这个字段值的方法名。...实际上获取当前时间用的也是这个方法,只不过 Odoo 的 ORM 替我们封装了一层,fields.Datetime.now() 是类 Datetime 的静态方法: # fields.py class

    1.3K10

    odoo 开发入门教程系列-模型之间的关系(Relations Between Models)

    根据的类型对房地产进行分类是一种标准的业务需求,尤其是为了优化过滤。 一个房产可以有一个类型,但同一类型可以分配给多个房产。这得到了many2one概念的支持。...然而,在本例中,我们希望显示给定地产的报价列表,因此我们将使用one2many概念。 one2many是many2one的反向实现。...按照惯例,one2many字段都有_ids后缀。...其次,尽管property_id字段是必需的,但我们没有将其包含在视图中。odoo如何知道我们的报价与哪个房产相关?这就是使用odoo框架的一部分魔力:有时候事情是隐式定义的。...当我们通过one2many字段创建记录时,为了方便,会自动填充相应的many2one 添加odoo14\custom\estate\models\estate_property_offer.py #!

    4.4K40

    odoo Web Controllers 学习总结

    环境 odoo-14.0.post20221212.tar Web Controllers Controllers 控制器需要提供可扩展性,就像Model,但不能使用相同的机制,因为先决条件(已加载模块的数据库...)可能还不可用(例如,未创建数据库或未选择数据库)。...(和路由)可见的必要条件:如果方法在没有修饰的情况下被重新定义,它将是“未发布的” 所有方法的修饰符都是组合的,如果没使用任何参数重写方法修饰符,之前所有的参数都被保留,任何提供的参数都将覆盖之前定义的参数...如果没经过身份验证,使用共享公共用户(Public user)执行当前请求。 none: 即使没有数据库,该方法也始终处于活动状态。主要由框架和认证模块使用。...methods – 此路由所应用的一系列http方法。如果未指定,则允许使用所有方法

    1.3K20

    ODOO优化层级关系查询效率的方法

    Odoo10 Development Essentials》Chapter5(p106)中介绍了Odoo中分层关系的建立。 代码如下 在上面的代码中。 使用字段来关联上层记录。...使用这个属性来开启分层搜索功能. 使用字段来进行记录所属层级,当时看书的时候对这些代码不是很理解,只是知道这样做能够提高层级关系数据模型查询数据记录的效率。...简单原理 查询分层结构记录时,一般的想到的方法是从根目录开始,对每个子目录进行递归查询.然后才能得出具体的分层结构。...(如递归查询文件夹文件) Odoo中为了提高层次结构(树状结构)查询效率,每一条层级数据记录添加跟字段. 假设A是B的上级对象。那么存在这样的逻辑关系。...要找Saleable下的所有子目录即可使用 作为条件 结论: 在Odoo的实际使用中,发现使用parent存储特性的模块主要涉及account, product, stock_location.

    2.3K80

    ODOO配置文件etcodoo.conf配置详解

    作为登录公司用户使用后端(web客户端)时,这不是问题:登录时可以选择数据库,然后加载自定义设置。 ...如果没有使用多租户,这不是问题,只有一个数据库可以使用,但是如果有多个数据库可以访问,Odoo需要一个规则来知道它应该使用哪一个。 ...这是--db filter的目的之一:它指定如何根据所请求的主机名(域)选择数据库。该值是一个正则表达式,可能包括动态注入的主机名(%h)或访问系统所通过的第一个子域(%d)。 ...多处理是通过配置非零数量的工作进程来实现的,工作进程的数量应该基于机器中的核心数量(可能有一些空间供cron工作进程使用,这取决于预测的cron工作量) 可以根据硬件配置配置工作进程限制,以避免资源耗尽...工作进程数量计算 数量规则:(#CPU * 2) + 1 Cron工作者需要CPU 1个工作进程~=6个并发用户 内存大小计算 我们认为20%的请求是繁重请求,而80%是简单请求 一个繁重的工作,当所有的计算字段都设计好了

    7.1K31

    odoo Actions学习总结

    环境 odoo-14.0.post20221212.tar Actions(动作) action定义系统响应用户操作的行为:登录、操作按钮、选择发票等… action可以存储在数据库中,也可以作为字典直接返回...,例如按钮方法。...所有Action都有两个强制属性: type 当前Action的类别,决定可以使用哪些字段以及如何解释action name action的名称,在客户端的界面中显示对action的简短用户可读描述...如果未提供id,则客户端应获取所请求模型的指定类型的默认视图(这由 fields_view_get()自动完成)。列表的第一种类型是默认视图类型,在执行操作时默认打开。...highlight=do_action#the-action-manager 在数据库window action中,操作有几个不同的字段,这些字段应被客户端忽略,主要用于组成view列表 view_mode

    2.6K30
    领券