Inheritance 从选股到联系人模型继承搜索视图过滤器-Odoo v13社区

Inheritance 从选股到联系人模型继承搜索视图过滤器-Odoo v13社区,inheritance,filter,searchview,stock,odoo-13,Inheritance,Filter,Searchview,Stock,Odoo 13,我正在尝试将一个过滤器从选股(就绪,完成…)添加到联系人过滤器中 具体来说,尝试从stock.picking继承我需要的过滤器,将其添加到res.partner(搜索查看联系人) 像这样。。(.py): 视图(.xml) res.partner.filter.inherit 合伙人 图片: 但是,选择筛选器时出错 Erreur: Odoo Server Error Traceback (most recent call last): File "C:\Program Fil

我正在尝试将一个过滤器从选股(就绪,完成…)添加到联系人过滤器中

具体来说,尝试从stock.picking继承我需要的过滤器,将其添加到res.partner(搜索查看联系人)

像这样。。(.py):

视图(.xml)


res.partner.filter.inherit
合伙人
图片:

但是,选择筛选器时出错

Erreur:
Odoo Server Error

Traceback (most recent call last):
  File "C:\Program Files (x86)\Odoo 13.0\server\odoo\http.py", line 624, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "C:\Program Files (x86)\Odoo 13.0\server\odoo\http.py", line 310, in _handle_exception
    raise pycompat.reraise(type(exception), exception, sys.exc_info()[2])
  File "C:\Program Files (x86)\Odoo 13.0\server\odoo\tools\pycompat.py", line 14, in reraise
    raise value
  File "C:\Program Files (x86)\Odoo 13.0\server\odoo\http.py", line 669, in dispatch
    result = self._call_function(**self.params)
  File "C:\Program Files (x86)\Odoo 13.0\server\odoo\http.py", line 350, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "C:\Program Files (x86)\Odoo 13.0\server\odoo\service\model.py", line 94, in wrapper
    return f(dbname, *args, **kwargs)
  File "C:\Program Files (x86)\Odoo 13.0\server\odoo\http.py", line 339, in checked_call
    result = self.endpoint(*a, **kw)
  File "C:\Program Files (x86)\Odoo 13.0\server\odoo\http.py", line 915, in __call__
    return self.method(*args, **kw)
  File "C:\Program Files (x86)\Odoo 13.0\server\odoo\http.py", line 515, in response_wrap
    response = f(*args, **kw)
  File "C:\Program Files (x86)\Odoo 13.0\server\odoo\addons\web\controllers\main.py", line 1280, in search_read
    return self.do_search_read(model, fields, offset, limit, domain, sort)
  File "C:\Program Files (x86)\Odoo 13.0\server\odoo\addons\web\controllers\main.py", line 1299, in do_search_read
    return Model.web_search_read(domain, fields, offset=offset, limit=limit, order=sort)
  File "C:\Program Files (x86)\Odoo 13.0\server\odoo\addons\web\models\models.py", line 39, in web_search_read
    records = self.search_read(domain, fields, offset=offset, limit=limit, order=order)
  File "C:\Program Files (x86)\Odoo 13.0\server\odoo\models.py", line 4841, in search_read
    records = self.search(domain or [], offset=offset, limit=limit, order=order)
  File "C:\Program Files (x86)\Odoo 13.0\server\odoo\models.py", line 1618, in search
    res = self._search(args, offset=offset, limit=limit, order=order, count=count)
  File "C:\Program Files (x86)\Odoo 13.0\server\odoo\addons\base\models\res_partner.py", line 710, in _search
    count=count, access_rights_uid=access_rights_uid)
  File "C:\Program Files (x86)\Odoo 13.0\server\odoo\models.py", line 4386, in _search
    query = self._where_calc(args)
  File "C:\Program Files (x86)\Odoo 13.0\server\odoo\models.py", line 4115, in _where_calc
    e = expression.expression(domain, self)
  File "C:\Program Files (x86)\Odoo 13.0\server\odoo\osv\expression.py", line 675, in __init__
    self.parse()
  File "C:\Program Files (x86)\Odoo 13.0\server\odoo\osv\expression.py", line 856, in parse
    raise ValueError("Invalid field %r in leaf %r" % (left, str(leaf)))
ValueError: Invalid field 'state' in leaf "<osv.ExtendedLeaf: ('state', 'in', ['assigned', 'partially_available']) on res_partner (ctx: )>"
Erreur:
Odoo服务器错误
回溯(最近一次呼叫最后一次):
文件“C:\Program Files(x86)\Odoo 13.0\server\Odoo\http.py”,第624行,在\u handle\u异常中
返回super(JsonRequest,self)。\u handle\u异常(exception)
文件“C:\Program Files(x86)\Odoo 13.0\server\Odoo\http.py”,第310行,在\u handle\u异常中
raise pycompat.reraise(类型(异常)、异常、sys.exc_info()[2])
文件“C:\Program Files(x86)\Odoo 13.0\server\Odoo\tools\pycompat.py”,第14行,重新登录
增值
文件“C:\Program Files(x86)\Odoo 13.0\server\Odoo\http.py”,第669行,在分派中
结果=self.\u调用函数(**self.params)
文件“C:\Program Files(x86)\Odoo 13.0\server\Odoo\http.py”,第350行,在调用函数中
返回选中的\u调用(self.db、*args、**kwargs)
文件“C:\Program Files(x86)\Odoo 13.0\server\Odoo\service\model.py”,第94行,在包装器中
返回f(数据库名,*args,**kwargs)
文件“C:\Program Files(x86)\Odoo 13.0\server\Odoo\http.py”,第339行,在checked\u调用中
结果=自身终点(*a,**kw)
文件“C:\Program Files(x86)\Odoo 13.0\server\Odoo\http.py”,第915行,在调用中__
返回自方法(*参数,**kw)
文件“C:\Program Files(x86)\Odoo 13.0\server\Odoo\http.py”,第515行,作为响应\u wrap
响应=f(*参数,**kw)
文件“C:\Program Files(x86)\Odoo 13.0\server\Odoo\addons\web\controllers\main.py”,第1280行,搜索\u已读
返回self.do\u search\u read(模型、字段、偏移量、限制、域、排序)
文件“C:\Program Files(x86)\Odoo 13.0\server\Odoo\addons\web\controllers\main.py”,第1299行,在do\u search\u read中
返回模型。web搜索读取(域、字段、偏移量=偏移量、限制量=限制、顺序=排序)
文件“C:\Program Files(x86)\Odoo 13.0\server\Odoo\addons\web\models\models.py”,第39行,web\u search\u read
记录=self.search\u read(域、字段、偏移量=偏移量、限制量=限制、顺序=顺序)
文件“C:\Program Files(x86)\Odoo 13.0\server\Odoo\models.py”,第4841行,搜索\u读取
记录=self.search(域或[],偏移量=offset,限制量=limit,订单量=order)
文件“C:\Program Files(x86)\Odoo 13.0\server\Odoo\models.py”,搜索中的第1618行
res=self.\u搜索(args,offset=offset,limit=limit,order=order,count=count)
文件“C:\Program Files(x86)\Odoo 13.0\server\Odoo\addons\base\models\res\u partner.py”,第710行,在搜索中
计数=计数,访问权限(uid=访问权限)
文件“C:\Program Files(x86)\Odoo 13.0\server\Odoo\models.py”,第4386行,在\u搜索中
查询=self.\u其中\u计算(args)
文件“C:\Program Files(x86)\Odoo 13.0\server\Odoo\models.py”,第4115行,在计算中
e=表达式。表达式(域,自)
文件“C:\Program Files(x86)\Odoo 13.0\server\Odoo\osv\expression.py”,第675行,在\uuu init中__
self.parse()
文件“C:\Program Files(x86)\Odoo 13.0\server\Odoo\osv\expression.py”,第856行,在parse中
raise VALUERROR(“叶%r”%中的无效字段%r(左,str(叶)))
ValueError:叶“”中的字段“状态”无效
我不是很确定,但当我从搜索视图调用它时,它似乎进入了一个无休止的循环

所以,我真的不知道它有什么问题

关于如何实现这一点有什么想法吗


提前谢谢

我不知道你到底想要什么,但试试这个。在res.partner模型中添加state字段

class respartner(models.Model):
_inherit=“res.partner”
state=fields.Selection([('draft','draft'),
(‘等待’,‘等待’),
],默认值为“草稿”
)
res.partner.select.inherit.base.partner.filter
合伙人
view.res.partner.filter.inherit
合伙人

您出现错误,因为res.partner模型中没有状态字段。我应该怎么做?您需要确切地告诉您想要做什么?您的代码不完整。您的res.partner模型在哪里?我想从拣货到联系人筛选器继承一个筛选器。不幸的是,相同的problem@ZakariaHamid.You想在联系人视图中添加筛选器,对吗?所以您已经选中了状态字段exit或not?您想从拣货到联系人筛选器继承筛选器是什么意思?我认为你的问题很简单,但你需要说清楚。这就是为什么没有人回答你的问题。谢谢。在拣货筛选中,有6种客户交付状态(草稿、等待、确认、分配、完成、取消),我需要继承此筛选以在联系人筛选中搜索视图。@ZakariaHamid。我编辑了我的代码。别忘了在“状态”字段中添加一些状态。我测试了一些演示。试试这个。非常感谢mutch,但是“状态”是我想要的,模型选股中交货状态的状态。。库存-交货-过滤器
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import models, fields, api

class StockPicking(models.Model):
    _inherit = 'stock.picking'

    available = fields.Many2one('res.partner',
                             string="Available",
                             domain="[('state', 'in', ('assigned', 'partially_available'))]")
    done = fields.Many2one('res.partner',
                                string="Done",
                                domain="[('state', '=', 'done')]")
<?xml version="1.0" encoding="utf-8"?>
<odoo>

        <record model="ir.ui.view" id="view_res_partner_filter_inherit">
            <field name="name">res.partner.filter.inherit</field>
            <field name="model">res.partner</field>
            <field name="inherit_id" ref="base.view_res_partner_filter"/>
            <field name="arch" type="xml">
                <search>
                    <filter name="available" string="Ready" domain="[('state', 'in', ('assigned', 'partially_available'))]" help="Assigned Moves"/>
                    <filter name="done" string="Done" domain="[('state', '=', 'done')]" help="Pickings already processed"/>
                </search>
            </field>
        </record>

</odoo>
Erreur:
Odoo Server Error

Traceback (most recent call last):
  File "C:\Program Files (x86)\Odoo 13.0\server\odoo\http.py", line 624, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "C:\Program Files (x86)\Odoo 13.0\server\odoo\http.py", line 310, in _handle_exception
    raise pycompat.reraise(type(exception), exception, sys.exc_info()[2])
  File "C:\Program Files (x86)\Odoo 13.0\server\odoo\tools\pycompat.py", line 14, in reraise
    raise value
  File "C:\Program Files (x86)\Odoo 13.0\server\odoo\http.py", line 669, in dispatch
    result = self._call_function(**self.params)
  File "C:\Program Files (x86)\Odoo 13.0\server\odoo\http.py", line 350, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "C:\Program Files (x86)\Odoo 13.0\server\odoo\service\model.py", line 94, in wrapper
    return f(dbname, *args, **kwargs)
  File "C:\Program Files (x86)\Odoo 13.0\server\odoo\http.py", line 339, in checked_call
    result = self.endpoint(*a, **kw)
  File "C:\Program Files (x86)\Odoo 13.0\server\odoo\http.py", line 915, in __call__
    return self.method(*args, **kw)
  File "C:\Program Files (x86)\Odoo 13.0\server\odoo\http.py", line 515, in response_wrap
    response = f(*args, **kw)
  File "C:\Program Files (x86)\Odoo 13.0\server\odoo\addons\web\controllers\main.py", line 1280, in search_read
    return self.do_search_read(model, fields, offset, limit, domain, sort)
  File "C:\Program Files (x86)\Odoo 13.0\server\odoo\addons\web\controllers\main.py", line 1299, in do_search_read
    return Model.web_search_read(domain, fields, offset=offset, limit=limit, order=sort)
  File "C:\Program Files (x86)\Odoo 13.0\server\odoo\addons\web\models\models.py", line 39, in web_search_read
    records = self.search_read(domain, fields, offset=offset, limit=limit, order=order)
  File "C:\Program Files (x86)\Odoo 13.0\server\odoo\models.py", line 4841, in search_read
    records = self.search(domain or [], offset=offset, limit=limit, order=order)
  File "C:\Program Files (x86)\Odoo 13.0\server\odoo\models.py", line 1618, in search
    res = self._search(args, offset=offset, limit=limit, order=order, count=count)
  File "C:\Program Files (x86)\Odoo 13.0\server\odoo\addons\base\models\res_partner.py", line 710, in _search
    count=count, access_rights_uid=access_rights_uid)
  File "C:\Program Files (x86)\Odoo 13.0\server\odoo\models.py", line 4386, in _search
    query = self._where_calc(args)
  File "C:\Program Files (x86)\Odoo 13.0\server\odoo\models.py", line 4115, in _where_calc
    e = expression.expression(domain, self)
  File "C:\Program Files (x86)\Odoo 13.0\server\odoo\osv\expression.py", line 675, in __init__
    self.parse()
  File "C:\Program Files (x86)\Odoo 13.0\server\odoo\osv\expression.py", line 856, in parse
    raise ValueError("Invalid field %r in leaf %r" % (left, str(leaf)))
ValueError: Invalid field 'state' in leaf "<osv.ExtendedLeaf: ('state', 'in', ['assigned', 'partially_available']) on res_partner (ctx: )>"