【odoo】创建第一个odoo模块(含所有odoo17字段类型)

概要

        如果你是第一次看到这篇文章,那么建议您可以先了解文章:odoo中的所有字段类型。话不多说,上正片:

模块目录

文件代码

__init__.py(models)

# -*- coding: utf-8 -*-

from . import fields_about

fields_about.py

# -*- coding: utf-8 -*-
import ast
from odoo import api, fields, models, modules, tools, _

class AllFieldAbout(models.Model):
    _name = "all.field.about"
    _description = """字段相关内容"""

    # 基础字段类型
    char_field = fields.Char('name字段')
    text_field = fields.Text('text字段')
    integer_field = fields.Integer('integer字段')
    float_field = fields.Float('float字段')
    boolean_field = fields.Boolean('boolean字段')
    date_field = fields.Date('date字段')
    datetime_field = fields.Datetime('datetime字段')
    # 关联字段类型
    many2one_field_id = fields.Many2one('res.partner', 'many2one字段')
    one2many_field_ids = fields.One2many('res.partner', 'all_field_about_id', 'one2many字段')
    many2many_field_ids = fields.Many2many('res.partner', 'res_partner_all_field_about_rel', 'all_field_about_id', 'partner_id', 'many2many字段')
    # 其他字段类型
    selection_field = fields.Selection([('1', '1'), ('2', '2')], 'selection字段')
    binary_field = fields.Binary('binary字段')
    image_field = fields.Image('image字段')
    html_field = fields.Html('html字段')
    currency_id = fields.Many2one('res.currency', string='Currency', required=True,
                                  default=lambda self: self.env.company.currency_id)
    monetary_field = fields.Monetary('monetary字段', currency_field='currency_id')
    reference_field = fields.Reference([('res.partner', 'res.partner'), ('res.users', 'res.users')], 'reference字段')

class ResPartner(models.Model):
    _inherit = 'res.partner'

    all_field_about_id = fields.Many2one('all.field.about', 'all_field_about_id')


ir.model.access.csv

id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_all_field_about,all_field_about,model_all_field_about,base.group_user,1,1,1,1

all_field_about.xml

<odoo>
    <record id="all_field_about_form_view" model="ir.ui.view">
        <field name="name">all_field_about_form_view</field>
        <field name="model">all.field.about</field>
        <field name="arch" type="xml">
            <form string="字段相关">
                <sheet>
                    <group>
                        <group string="基础字段类型">
                            <field name="char_field"/>
                            <field name="text_field"/>
                            <field name="integer_field"/>
                            <field name="float_field"/>
                            <field name="boolean_field"/>
                            <field name="date_field"/>
                            <field name="datetime_field"/>
                        </group>
                        <group string="其他字段类型">
                            <field name="selection_field"/>
                            <field name="binary_field"/>
                            <field name="image_field"/>
                            <field name="html_field"/>
                            <field name="monetary_field"/>
                            <field name="reference_field"/>
                        </group>
                    </group>
                    <group string="关联字段类型">
                        <field name="many2one_field_id"/>
                        <field name="one2many_field_ids"/>
                        <field name="many2many_field_ids"/>
                    </group>
                </sheet>
            </form>
        </field>
    </record>
    <record id="all_field_about_tree_view" model="ir.ui.view">
        <field name="name">all_field_about_tree_view</field>
        <field name="model">all.field.about</field>
        <field name="arch" type="xml">
            <tree>
                <field name="char_field"/>
                <field name="text_field"/>
                <field name="integer_field"/>
            </tree>
        </field>
    </record>
    <record id="all_field_about_action" model="ir.actions.act_window">
        <field name="name">字段相关</field>
        <field name="res_model">all.field.about</field>
        <field name="view_mode">form,tree</field>
        <field name="view_id" ref="all_field_about_tree_view"/>
    </record>
    <menuitem
            id="all_field_about_menu"
            action="all_field_about_action"
            sequence="10"
    />
</odoo>

__init__.py

# -*- coding: utf-8 -*-
from . import models

__manifest__.py

# -*- coding: utf-8 -*-
{
    'name': "all_field_about",

    'summary': """
        odoo17所有字段相关内容""",

    'description': """
        展示odoo17所有字段相关内容
    """,

    'author': "demo",
    'website': "demo",
    'license': 'LGPL-3',

    'category': 'fields',
    'version': '17.0.0.1',

    'depends': [],
    'data': [
        'security/ir.model.access.csv',
        'views/all_field_about.xml',
    ],
}

安装模块 

  1. 把模块放到某个文件目录下,然后在odoo.conf文件引用一下文件目录路径。(我的是放在了csdn_module目录下) 
    addons_path = D:\odoo17\odoo\addons,D:\odoo17\odoo\csdn_module
  2. 必须重启odoo!
  3. 进到界面开启debug模式!
  4. 然后进入应用目录-->左上角点击 更新程序列表-->更新
  5. 然后搜索模块名称,进行安装即可
  6. 安装后目录将多出一个“字段相关”的菜单,此菜单就是您创建好的模块
     

小结

        多写多敲多思考,毕竟,知己知彼才能看懂源码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值