如何在 odoo 12 的 header-details invoice mod 中正确添加 One2many 关系?
How to add One2many relation in header-details invoice mod in odoo 12 properly?
我试图为发票模块建立 header-details 关系,但我真的不明白 odoo 12 如何为 one2many 关系工作,我有一个名为 ms_produk 的模块,我的数据库名称是 "ms_produk_ms_produk", ms_produk 模块作为product master,也就是CRUD产品列表,我希望模块在创建发票时选择产品
这就是我所做的,我创建了一个看起来像这样的模型:
# -*- coding: utf-8 -*-
from odoo import models, fields, api
class SalesorderSalesorder(models.Model):
_name = 'salesorder.salesorder'
no_faktur = fields.Char(String='No Faktur', required=True)
kd_dealer = fields.Char(String='Kode Dealer', required=True)
nm_dealer = fields.Char(String='Nama Dealer', required=True)
tanggal_faktur = fields.Datetime(string='Tgl Faktur', default=fields.Datetime.now())
nm_sales = fields.Selection(
[('bruno', 'Bruno'),('layla','Layla'),('vexana','Vexana')]
,string='Choose Seller')
keterangan = fields.Html(string='Keterangan')
kd_sales = fields.Many2one('res.users', string='Kode Sales')
details = fields.One2many('ms_produk_ms_produk','no_faktur','No Faktur')
但是当细节写成这样时,它给我的错误是 "Internal Server Error" 服务器无法启动,然后我将其更改为:
# -*- coding: utf-8 -*-
from odoo import models, fields, api
class SalesorderSalesorder(models.Model):
_name = 'salesorder.salesorder'
no_faktur = fields.Char(String='No Faktur', required=True)
kd_dealer = fields.Char(String='Kode Dealer', required=True)
nm_dealer = fields.Char(String='Nama Dealer', required=True)
tanggal_faktur = fields.Datetime(string='Tgl Faktur', default=fields.Datetime.now())
nm_sales = fields.Selection(
[('bruno', 'Bruno'),('layla','Layla'),('vexana','Vexana')]
,string='Choose Seller')
,string='Pilih Sales')
keterangan = fields.Html(string='Keterangan')
kd_sales = fields.Many2one('res.users', string='Kode Sales')
details = fields.One2many('salesorder.salesorder','no_faktur','No Faktur')
这有效但错误,它自己加载销售订单,我想要的是,它出现在产品列表中,我选择产品名称并将其添加到发票详细信息中。
这是我的观点,我将其命名为salesorder_view.xml
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<data>
<record id="salesorder_menu_action" model="ir.actions.act_window">
<field name="name">SalesOrders</field>
<field name="res_model">salesorder.salesorder</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="domain">[]</field>
<field name="help" type="html">
<p class="oe_view_nocontent_create">Create SalesOrders
</p>
</field>
</record>
<menuitem id="salesorder_menu" name="SalesOrder"/>
<menuitem id="Salesorder_neworder_menu"
parent="salesorder_menu"
name="New Order"
action="salesorder_menu_action"/>
</data>
</odoo>
如何正确地做到这一点?
定义 One2many 字段时,您需要给出与您需要加载的 table 的关系,请参考此 link 以了解 One2many 字段。
通过使用窗体视图,您可以设计模型的视图。
我试图为发票模块建立 header-details 关系,但我真的不明白 odoo 12 如何为 one2many 关系工作,我有一个名为 ms_produk 的模块,我的数据库名称是 "ms_produk_ms_produk", ms_produk 模块作为product master,也就是CRUD产品列表,我希望模块在创建发票时选择产品
这就是我所做的,我创建了一个看起来像这样的模型:
# -*- coding: utf-8 -*-
from odoo import models, fields, api
class SalesorderSalesorder(models.Model):
_name = 'salesorder.salesorder'
no_faktur = fields.Char(String='No Faktur', required=True)
kd_dealer = fields.Char(String='Kode Dealer', required=True)
nm_dealer = fields.Char(String='Nama Dealer', required=True)
tanggal_faktur = fields.Datetime(string='Tgl Faktur', default=fields.Datetime.now())
nm_sales = fields.Selection(
[('bruno', 'Bruno'),('layla','Layla'),('vexana','Vexana')]
,string='Choose Seller')
keterangan = fields.Html(string='Keterangan')
kd_sales = fields.Many2one('res.users', string='Kode Sales')
details = fields.One2many('ms_produk_ms_produk','no_faktur','No Faktur')
但是当细节写成这样时,它给我的错误是 "Internal Server Error" 服务器无法启动,然后我将其更改为:
# -*- coding: utf-8 -*-
from odoo import models, fields, api
class SalesorderSalesorder(models.Model):
_name = 'salesorder.salesorder'
no_faktur = fields.Char(String='No Faktur', required=True)
kd_dealer = fields.Char(String='Kode Dealer', required=True)
nm_dealer = fields.Char(String='Nama Dealer', required=True)
tanggal_faktur = fields.Datetime(string='Tgl Faktur', default=fields.Datetime.now())
nm_sales = fields.Selection(
[('bruno', 'Bruno'),('layla','Layla'),('vexana','Vexana')]
,string='Choose Seller')
,string='Pilih Sales')
keterangan = fields.Html(string='Keterangan')
kd_sales = fields.Many2one('res.users', string='Kode Sales')
details = fields.One2many('salesorder.salesorder','no_faktur','No Faktur')
这有效但错误,它自己加载销售订单,我想要的是,它出现在产品列表中,我选择产品名称并将其添加到发票详细信息中。
这是我的观点,我将其命名为salesorder_view.xml
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<data>
<record id="salesorder_menu_action" model="ir.actions.act_window">
<field name="name">SalesOrders</field>
<field name="res_model">salesorder.salesorder</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="domain">[]</field>
<field name="help" type="html">
<p class="oe_view_nocontent_create">Create SalesOrders
</p>
</field>
</record>
<menuitem id="salesorder_menu" name="SalesOrder"/>
<menuitem id="Salesorder_neworder_menu"
parent="salesorder_menu"
name="New Order"
action="salesorder_menu_action"/>
</data>
</odoo>
如何正确地做到这一点?
定义 One2many 字段时,您需要给出与您需要加载的 table 的关系,请参考此 link 以了解 One2many 字段。
通过使用窗体视图,您可以设计模型的视图。