我正在一个示例模块中工作,我正在创建一个视图,其中我想根据条件和来自多个模型来显示记录。哪些已经被创建。Odoo - 初始化函数不起作用
Pending Accounts
class PendingAccounts(models.Model):
_name = 'amgl.pending_accounts'
_description = 'Pending Account'
name = fields.Char()
first_name = fields.Char(string="First Name")
last_name = fields.Char(string="Last Name")
quantity_expected = fields.Float(string="Quantity Expected")
quantity_received = fields.Float(string="Quantity Received")
possible_reason = fields.Many2one('amgl.product_reason',string='Possible Reason')
possible_solution = fields.Many2one('amgl.product_solution', string='Possible Solution')
notes = fields.Html(string='Notes')
@api.model_cr
def init(self):
tools.drop_view_if_exists(self._cr, 'pending_accounts')
self._cr.execute("""
CREATE VIEW pending_accounts AS (
SELECT c.name AS first_name,
c.last_name AS last_name,
o.total_received_qty AS quantity_received,
o.total_qty AS quantity_expected
FROM amgl_order AS o
INNER JOIN amgl_customer AS c ON c.id = o.customer_id
WHERE o.is_pending = True
)""")
Pending Accounts View
<odoo>
<data>
<record id="amgl.pending_accounts_action_window" model="ir.actions.act_window">
<field name="name">Pending Accounts</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">amgl.pending_accounts</field>
<field name="view_mode">tree,form</field>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
<!-- Add Text Here -->
</p><p>
<!-- More details about what a user can do with this object will be OK -->
</p>
</field>
</record>
<record id="amgl.pending_accounts_form" model="ir.ui.view">
<field name="name">Pending Accounts Form</field>
<field name="model">amgl.pending_accounts</field>
<field name="arch" type="xml">
<form string="Pending Inventories">
<sheet>
<group>
<field name="first_name"/>
<field name="last_name"/>
<field name="quantity_expected"/>
<field name="quantity_received"/>
<field name="possible_reason"/>
<field name="possible_solution"/>
<field name="notes"/>
</group>
</sheet>
</form>
</field>
</record>
<record id="amgl.pending_accounts_tree" model="ir.ui.view">
<field name="name">Pending Account</field>
<field name="model">amgl.pending_accounts</field>
<field name="arch" type="xml">
<tree string="Pending Accounts">
<field name="first_name"/>
<field name="last_name"/>
<field name="quantity_expected"/>
<field name="quantity_received"/>
<field name="possible_reason"/>
<field name="possible_solution"/>
<field name="notes"/>
</tree>
</field>
</record>
</data>
</odoo>
所以我创建了一个模型,并添加查询来获取模型的init
方法所有这些记录。但它没有在树视图中显示任何记录。我也在pgadmin中运行查询,并且有一条记录针对此查询,如附件所示。
我现在面临着以下错误,
Traceback (most recent call last):
File "/home/ahsan/v10/odoo/http.py", line 638, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/home/ahsan/v10/odoo/http.py", line 675, in dispatch
result = self._call_function(**self.params)
File "/home/ahsan/v10/odoo/http.py", line 331, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/home/ahsan/v10/odoo/service/model.py", line 101, in wrapper
return f(dbname, *args, **kwargs)
File "/home/ahsan/v10/odoo/http.py", line 324, in checked_call
result = self.endpoint(*a, **kw)
File "/home/ahsan/v10/odoo/http.py", line 933, in __call__
return self.method(*args, **kw)
File "/home/ahsan/v10/odoo/http.py", line 504, in response_wrap
response = f(*args, **kw)
File "/home/ahsan/v10/addons/web/controllers/main.py", line 827, in
search_read
return self.do_search_read(model, fields, offset, limit, domain, sort)
File "/home/ahsan/v10/addons/web/controllers/main.py", line 849, in
do_search_read
offset=offset or 0, limit=limit or False, order=sort or False)
File "/home/ahsan/v10/odoo/models.py", line 4681, in search_read
records = self.search(domain or [], offset=offset, limit=limit, order=order)
File "/home/ahsan/v10/odoo/models.py", line 1518, in search
res = self._search(args, offset=offset, limit=limit, order=order, count=count)
File "/home/ahsan/v10/odoo/models.py", line 4242, in _search
self._cr.execute(query_str, where_clause_params)
File "/home/ahsan/v10/odoo/sql_db.py", line 141, in wrapper
return f(self, *args, **kwargs)
File "/home/ahsan/v10/odoo/sql_db.py", line 218, in execute
res = self._obj.execute(query, params)
ProgrammingError: column amgl_pending_accounts.id does not exist
LINE 1: SELECT "amgl_pending_accounts".id FROM "amgl_pending_account...
我认为它不工作也因为现在我在下一个字段出错'ProgrammingError:列amgl_pending_accounts.possible_solution不存在 线1:... amgl_pending_accounts“。 “last_name”作为“last_name”,“amgl_pend ...” – Ancient
第一个问题是因为ID字段,现在给我完整的错误,我会告诉你的原因 –
请查看更新的答案,我的查询中有错误。我忘了提及小组。 –