小编Rob*_*beM的帖子

Odoo计算字段:无存储的工作= True,不适用于store = True

我在Odoo中有一个带有函数的计算字段.当我不添加商店参数时,一切正常.当我添加store参数时,它根本不执行代码.

我的代码:

class opc_actuelewaardentags(models.Model):
    _name = 'opc_actuelewaardentags'

    unit = fields.Char(compute='changeunit')

    def changeunit(self):
        print "print"
        allrecords_actwaardent = self.search([])

        obj_taginst = self.env['opc_taginstellingen']
        allrecords_taginst = obj_taginst.search([])


        for i in allrecords_actwaardent:
            for j in allrecords_taginst:
                if i.tagnaam == j.tagnaam and i.unit != j.unit:
                    i.unit = j.unit
Run Code Online (Sandbox Code Playgroud)

所以:当我调用这样的代码时:

unit = fields.Char(compute='changeunit')
Run Code Online (Sandbox Code Playgroud)

代码被执行(显示"打印").

当我这样调用代码时:

unit = fields.Char(compute='changeunit', store=True)
Run Code Online (Sandbox Code Playgroud)

代码未执行(不显示"print").

我的代码有什么问题吗?或者这是一个错误?这对我来说似乎很奇怪......

我需要能够将值存储在数据库中,以便我可以在树视图中过滤单元.

编辑:我应用了Juan Salcedo的提示.没工作......

我就这样做了:

unit = fields.Char(default = changeunit)    

def changeunit(self):
    print "print"
    allrecords_actwaardent = self.search([])

    obj_taginst = self.env['opc_taginstellingen']
    #Hier dan i.p.v. self werken met …
Run Code Online (Sandbox Code Playgroud)

python field odoo

7
推荐指数
1
解决办法
2万
查看次数

Odoo:字段上的条件不可见属性只能在一个方向上起作用吗?

我试图在一个Odoo表单视图中使一个字段不可见.检查"可以出售"时==>"产品经理"应该是不可见的:

在此输入图像描述

在此输入图像描述

我尝试在产品表单的继承视图中使用属性"invisible"与域:

<record model="ir.ui.view" id="product_template_form_inherit">
    <field name="name">product.template.product.form</field>
    <field name="model">product.template</field>
    <field name="inherit_id" ref="product.product_template_only_form_view" />
    <field name="arch" type="xml">
        <field name="product_manager"  position="attributes">
                    <attribute name="invisible">[('sale_ok', '=', True)]</attribute>
        </field>    
</field>
</record>
Run Code Online (Sandbox Code Playgroud)

当字段sale_ok为true时,product_manager字段实际上是隐藏的.但是当字段sale_ok再次变为false时,字段product_manager保持隐藏状态.

我也试过这个:

<field name="product_manager" attrs="{'invisible': [('sale_ok', '=', True)]}"/>
Run Code Online (Sandbox Code Playgroud)

这也不起作用.

我也尝试过其他域名:

[('sale_ok', '==', True)]
[('sale_ok', '!=', False)]
[('sale_ok', '=', 'True')]
Run Code Online (Sandbox Code Playgroud)

不确定这里有什么问题......当(未)检查时如何使它(in)可见?

我最终得到的是以下内容:选中复选框后,表单应立即更改而不保存.必须添加和删除字段.那可能吗?

编辑:

我现在可以用ChesuCR的答案隐藏/取消隐藏产品经理.但是,当我使用"loc_rack"(存储位置==>机架)尝试相同的操作时,它会给出错误:

Field(s) `arch` failed against a constraint: Invalid view definition

Error details:
Element '<field name="loc_rack">' cannot be located in parent view
Run Code Online (Sandbox Code Playgroud)

这是我使用的代码:

<field name="loc_rack"  position="replace">
    <field name="loc_rack" attrs="{'invisible': …
Run Code Online (Sandbox Code Playgroud)

xml inheritance odoo odoo-view

7
推荐指数
2
解决办法
2万
查看次数

Odoo:无法在树视图中编辑记录?

在Odoo中,您可以无法在树视图中创建或删除记录,如下所示:

            <tree create="false" delete="false">
                <field name="create_date" readonly="True"/>
            </tree>
Run Code Online (Sandbox Code Playgroud)

但我仍然可以点击记录并转到该记录的表格.有没有办法让它无法点击这些记录并进行编辑?

xml treeview odoo

2
推荐指数
2
解决办法
1万
查看次数

Odoo 8.0:如何将菜单项链接到正确的视图?如何将表单视图链接到正确的树视图?

基于为一个模型openerp创建两个图形视图,我为Odoo V8.0中的一个模型创建了2个不同的树视图.这很好用.

但是现在我还想为这两个树视图添加表单视图.当我在.xml中添加表单视图时,一切都搞砸了.我在de .xml中尝试了很多不同的命令,但我无法解决这个问题.

当我从.xml中删除表单时,表单显示模型的所有字段.我只想展示其中一些.

这是我的views.xml:

<openerp>
<data>

<record model="ir.ui.view" id="opc_instellingen_id">
    <field name="name">opc_taginstellingen_tree</field>
    <field name="model">opc_tags</field>
    <field name="type">tree</field>
    <field name="arch" type="xml">
        <tree>
            <field name="tagnaam"/>
            <field name="lezenschrijven"/>
            <field name="logging"/>
            <field name="unit"/>
        </tree>
    </field>
</record>

<record model="ir.ui.view" id="opc_instellingen_id">
    <field name="name">opc_taginstellingen_form</field>
    <field name="model">opc_tags</field>
    <field name="type">form</field>
    <field name="arch" type="xml">
        <form string="OPC Taginstellingen">
            <group colspan="1" col="4">
                <field name="tagnaam"/>
                <field name="lezenschrijven"/>
                <field name="logging"/>
                <field name="unit"/>
            </group>
        </form>
    </field>        
</record>

<record model="ir.ui.view" id="opc_actuele_waarden_id">
    <field name="name">opc_actuelewaardentags_tree</field>
    <field name="model">opc_tags</field>
    <field name="arch" type="xml">
        <tree delete="false">
            <field name="tagnaam" …
Run Code Online (Sandbox Code Playgroud)

xml treeview formview openerp odoo

2
推荐指数
1
解决办法
2990
查看次数

如何在Odoo上使用attrs属性将多个属性(不可见,只读或必需)组合成一个属性?

在Odoo中,当你有一个xpath时,你可以在满足条件时将"attrs"添加到一个字段,如必需或不可见.这很好用.

我正在尝试将这些结合起来2.我无法让它工作,无法在任何地方找到如何做到这一点.

例如,这是可能的:

<field name="name" attrs="{'invisible': [('condition', '=', False)]}"/>
<field name="name2" attrs="{'readonly': [('condition', '=', False)]}"/>
<field name="name3" attrs="{'required': [('condition', '=', False)]}"/>
Run Code Online (Sandbox Code Playgroud)

但我无法工作的是:

<field name="name" attrs="{'invisible': [('condition1', '=', False)]}, 'required': [('condition2', '=', True)]}"/>
Run Code Online (Sandbox Code Playgroud)

我想要一个字段在满足条件1时不可见,并且(当)满足条件2时也需要.我尝试了不同的语法,但不知道该怎么做.

这样做的正确方法是什么?

xml attributes field odoo odoo-view

2
推荐指数
1
解决办法
2万
查看次数

python: postgresql: 区分大小写的列名

我正在尝试对 psql 数据库进行选择查询。但我的列名是“Tagnaam”,所以区分大小写。

我正在尝试这个查询:

cur.execute("SELECT Tagnaam FROM opc_taginstellingen")
Run Code Online (Sandbox Code Playgroud)

我读过解决方案是在列名上使用双引号,但这并不能解决问题。

我也尝试过:

cur.execute("SELECT "Tagnaam" FROM opc_taginstellingen")
cur.execute("SELECT ""Tagnaam"" FROM opc_taginstellingen")
cur.execute("SELECT '"Tagnaam"' FROM opc_taginstellingen")
Run Code Online (Sandbox Code Playgroud)

以上均无效。

它给出的错误:

    cur.execute("SELECT Tagnaam FROM opc_taginstellingen")
psycopg2.ProgrammingError: column "tagnaam" does not exist
LINE 1: SELECT Tagnaam FROM opc_taginstellingen
               ^
Run Code Online (Sandbox Code Playgroud)

我怎么解决这个问题?

提前致谢。

python postgresql case-sensitive psql

0
推荐指数
1
解决办法
2142
查看次数