You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Odoo中创建无默认视图的简易网站(含序列号按钮)

解决Odoo自定义页面默认显示新建/搜索栏的问题

核心问题分析

你当前的配置会加载默认的tree视图(带搜索、新建按钮),且form视图未隐藏默认操作按钮,同时缺少生成序列号的核心逻辑。以下是针对性的修改方案:


1. 调整动作配置,直接打开单页Form视图

修改debit_card_actions.xml,去掉tree视图,设置为单页模式并隐藏默认按钮:

<record id="debit_card_action" model="ir.actions.act_window">
    <field name="name">Kundenkarte</field>
    <field name="res_model">debit.card</field>
    <!-- 仅加载form视图 -->
    <field name="view_mode">form</field>
    <!-- 设置为单页弹窗模式,避免列表视图 -->
    <field name="target">new</field>
    <!-- 隐藏默认的创建/编辑按钮组 -->
    <field name="flags" eval="{'form': {'action_buttons': False}}"/>
</record>

2. 修改Form视图,添加生成按钮与序列号展示

修正debit_card_view.xml,隐藏默认操作按钮,添加序列号显示区域和生成按钮:

<record model="ir.ui.view" id="debit_card_form_view">
    <field name="name">debit.card.form.view</field>
    <!-- 修正模型名称拼写:debit_card → debit.card -->
    <field name="model">debit.card</field>
    <field name="arch" type="xml">
        <!-- 关闭创建/编辑权限,隐藏默认按钮 -->
        <form string="Kundenkarte" create="false" edit="false">
            <sheet>
                <div class="oe_title">
                    <h1>当前序列号: <field name="serial_number" readonly="1"/></h1>
                </div>
                <div class="oe_button_box">
                    <!-- 绑定生成序列号的模型方法 -->
                    <button name="generate_serial_number" string="生成序列号" type="object" class="oe_highlight"/>
                </div>
            </sheet>
        </form>
    </field>
</record>

3. 更新模型,添加序列号字段与生成逻辑

修正debit_card.py的拼写错误,补充字段和生成方法:

from odoo import fields, models
import random
import string

class DebitCard(models.TransientModel):
    _name = "debit.card"
    # 修正拼写错误:_desctiption → _description
    _description = "Heinzmann debit card"

    serial_number = fields.Char(string="序列号", readonly=True)

    def generate_serial_number(self):
        # 生成10位随机大小写字母+数字的序列号,可按需修改规则
        char_pool = string.ascii_uppercase + string.digits
        self.serial_number = ''.join(random.choice(char_pool) for _ in range(10))
        # 刷新视图展示新序列号
        return {'type': 'ir.actions.do_nothing'}

4. 修正权限配置(补充)

确保security/ir.model.access.csv给用户分配正确权限:

id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_debit_card,debit.card,model_debit_card,base.group_user,1,0,0,0

内容的提问来源于stack exchange,提问作者Taucher

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 22:52:17