首页 文章

Odoo8 - 我如何排序状态栏并将默认设置为新?

提问于
浏览
0

我在Odoo中为帮助台创建了一个新模块,我有两个问题似乎无法修复或找到相关信息,因此需要一些帮助 .

我创建了一个状态栏(代码):

state = fields.Selection({('new','New'), ('open','In Progress'), ('closed','Closed')}, "Status")
_defaults = {
    'state': 'new'
}



<header>
<field name="state" widget="statusbar" statusbar_visible="new,open,closed" clickable="True"/>

即使我已经说过“新的,开放的,封闭的”,它在Odoo中显示为开放的,新的,封闭的 .

我将状态默认设置为新的,即使我没有收到任何错误,当我点击创建时它显示状态为空白 .

关于如何解决这些问题的任何想法?

2 回答

  • 2

    当您声明字段时,您为其提供了一组选项,而不是选项列表 . Python中的集合不保留有关项目顺序的信息,但是列表可以 . 要使您声明的订单得到尊重,您只需要用列表文字替换set literal:

    state = fields.Selection(
        [('new','New'), ('open','In Progress'), ('closed','Closed')],
        "Status",
    )
    

    您可以从视图中删除 statusbar_visible .


    至于你的第二个问题(默认值),Emipro Technologies是正确的 . 您需要在字段中声明默认值作为参数:

    state = fields.Selection(
        [('new','New'), ('open','In Progress'), ('closed','Closed')],
        default='new',
        string="Status",
    )
    
  • 0

    你的字段声明似乎是Odoo-8代码,在V8 _defaults中你不需要写如下,

    state = fields.Selection({('new','New'), ('open','In Progress'), ('closed','Closed')},"Status", default='new')
    

    在状态栏中设置序列没有更多的逻辑,但是也尝试这个,

    <form string="String" version="7.0">
        <header>
            <field name="state" widget="statusbar" statusbar_visible="new,open,closed" clickable="True"/>
        </header>
    </form>
    

相关问题