odoo的search方法中怎么判断一个int类型字段里面的值是非空
时间: 2024-04-30 16:23:20 浏览: 14
在Odoo的search方法中,可以使用以下语法来判断一个int类型字段是否非空:
```
domain = [('field_name', '!=', False)]
```
其中,`field_name`是要判断的int类型字段的名称。这个语法会返回所有该字段不为空的记录。如果要返回该字段为空的记录,可以使用以下语法:
```
domain = [('field_name', '=', False)]
```
这个语法会返回所有该字段为空的记录。
相关问题
odoo中怎么判断int类型字段是非空
在Odoo中,可以使用Python的is not None语法来判断int类型字段是否为空。例如,假设我们有一个名为age的整数类型字段:
```python
class MyModel(models.Model):
_name = 'my.model'
age = fields.Integer(string='Age')
```
我们可以使用is not None来判断age是否为空:
```python
if self.age is not None:
# do something
```
这将检查age是否有值,如果age有值,则执行if语句中的代码。如果age为空(即没有值),则if语句中的代码将被忽略。
写一个odoo Many2one字段给Many2many字段传递值的方法
好的,下面是一个完整的示例代码,演示了如何通过Many2one字段给Many2many字段传递值。
在这个示例中,我们有两个模型:`ModelA`和`ModelB`,它们之间是Many2one关系。`ModelB`中有一个Many2many字段`value_ids`,用于存储传递的值。
1. 定义模型`ModelA`和`ModelB`
```python
class ModelA(models.Model):
_name = 'model.a'
name = fields.Char(string='Name')
model_b_id = fields.Many2one(comodel_name='model.b', string='Model B')
class ModelB(models.Model):
_name = 'model.b'
name = fields.Char(string='Name')
value_ids = fields.Many2many(comodel_name='model.c', column1='model_b_id', column2='model_c_id', string='Values')
```
在上述代码中,`ModelA`和`ModelB`之间是Many2one关系,`ModelB`中有一个`value_ids` Many2many字段,用于存储传递的值。
2. 在模板中添加Many2many字段的下拉菜单
```xml
<field name="model_b_id"/>
<field name="value_ids" widget="many2many_tags"/>
<button name="transfer_values" string="Transfer Values"/>
```
在上述代码中,我们在模板中添加了一个Many2many字段的下拉菜单,用于选择传递给`ModelB`的值。同时,我们添加了一个按钮,用于触发传递操作。
3. 在模型`ModelA`中添加传递值的方法
```python
@api.multi
def transfer_values(self):
for record in self:
values = record.value_ids.ids
record.model_b_id.write({'value_ids': [(6, 0, values)]})
```
在上述代码中,我们定义了一个`transfer_values`方法,用于传递选择的值。在这个方法中,我们通过API获取Many2many字段`value_ids`的值,并将其传递给`ModelB`的对应记录中。
通过以上三个步骤,我们就可以实现通过Many2one字段给Many2many字段传递值的操作了。