写个odoo视图代码,视图里边包含3个字段,name,code,description
时间: 2023-03-14 20:24:11 浏览: 117
class MyView(osv.Model):
_name = "my.view"
_description = "My View"
_columns = {
'name': fields.char('Name', size=50, required=True),
'code': fields.char('Code', size=50, required=True),
'description': fields.text('Description', size=1000)
}
相关问题
odoo的tree视图怎么写
Odoo的tree视图可以通过以下方式进行编写:
1. 定义模型
首先,需要定义模型对象。可以使用Odoo的模型类来定义模型对象,例如:
```
from odoo import models, fields
class MyModel(models.Model):
_name = 'my.model'
name = fields.Char('Name')
description = fields.Text('Description')
```
2. 定义tree视图
接下来,需要定义tree视图。可以使用Odoo的视图类来定义tree视图,例如:
```
<odoo>
<data>
<record model="ir.ui.view" id="my_model_tree_view">
<field name="name">My Model Tree View</field>
<field name="model">my.model</field>
<field name="arch" type="xml">
<tree>
<field name="name"/>
<field name="description"/>
</tree>
</field>
</record>
</data>
</odoo>
```
在上面的示例中,我们定义了一个名为“my_model_tree_view”的tree视图,并指定了模型对象“my.model”。在tree中,我们定义了两个字段:“name”和“description”。
3. 注册视图
最后,需要将tree视图注册到Odoo中。可以使用Odoo的模块类来注册视图,例如:
```
from odoo import api, SUPERUSER_ID
class MyModule(models.Model):
_name = 'my.module'
@api.model
def _register_hook(self):
# Register tree view
self.env['ir.ui.view'].search([
('name', '=', 'My Model Tree View'),
('model', '=', 'my.model')
]).write({
'arch': self.env.ref('my_module.my_model_tree_view').arch
})
```
在上面的示例中,我们在模块类中注册了tree视图。我们通过搜索现有的视图来找到我们定义的tree视图,并将其arch更新为我们定义的视图arch。
这样,我们就完成了Odoo的tree视图的编写。
写一个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字段传递值的操作了。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)