odoo- postgresql10-从数据库访问Many2one字段给我错误的结果

问题描述

具有该类别的一个模型,该模型与自己具有孩子-父母关系。

class product_public_cate (models.Model):
    _name = "product.public.category"     
    parent_id = fields.Many2one ('product.public.category','parent category')

类别可以分为2级或3级,我想在控制器中使用第一级和第二级类别,因此触发如下搜索方法

request.env ['product.public.category']. search (['|',('parent_id.parent_id','=',False),('parent_id',False)],order = "parent_id desc")

我不希望使用第三级类别,因此我已在上述搜索条件中应用过。它仅返回第二级类别,但不返回顶级类别。如果我要应用单独的搜索条件,则通过应用|返回正确的结果,但不适用于一个搜索。 (或)在两个条件之间

main_category_ids = request.env['product.public.category'].search([('parent_id',order="parent_id desc")
sub_category_id = request.env['product.public.category'].search([('parent_id.parent_id',order="parent_id desc")
result = main_category_ids + sub_category_id

想知道为什么第一次搜索不返回第一级类别。谢谢...,这是我也尝试过但没有得到结果的一些查询

request.env ['product.public.category']. search ([ '|','&','! =',order = "parent_id desc")


for 3 level child 
request.env['product.public.category'].search(['!',('parent_id.parent_id.parent_id',False)])

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)