我是Odoo-9.0c系统的新手,并尝试进行一些更改以支持这项工作。但我不知道如何为many2one字段设置特定值((选择类型)。该字段也是通过自定义模块创建的。解决此类问题的正确方法是什么?
答案 0 :(得分:1)
如果您希望使用动态内容,可以定义一个函数,该函数将设置记录中字段的默认值。在您的函数中,您需要在相关模型上标识记录的ID,并将字段的值分配给该ID。
@api.multi
def _get_field_name_default(self):
related_model_id = self.env['related.model'].search([<YOUR DOMAIN HERE>]).id
return related_model_id
field_name_id = fields.Many2one('model.name', string="Field Title", default=_get_field_name_default)
如果预计该值总是相同且您已经知道相关模型中记录的ID,那么您可以静态分配它。
field_name_id = fields.Many2one('model.name', string="Field Title", default=1)
最好使用能够在相关模型上的记录被删除的情况下返回False或None的函数。
答案 1 :(得分:1)
使用新的api,只需指定要更改的字段属性:
field_name = fields.Many2one(default=a_function)
字段继承
API的一个新功能是只能更改该字段的一个属性:
name = fields.Char(string='New Value')
...
字段默认值
默认现在是字段的关键字:
您可以将其归因于值或函数
name = fields.Char(default='A name')
或
name = fields.Char(default=a_fun)
...
def a_fun(self): return self.do_something()
答案 2 :(得分:0)
您可以使用lambda设置默认值:
#define DEBUG(_msg) MessageBoxA(nullptr, _msg, "Debug", MB_OK)