Как правильно добавить отношение One2many в мод счета-фактуры заголовка в odoo 12? - PullRequest
0 голосов
/ 03 июля 2019

Я пытаюсь построить отношение подробностей заголовка для модуля счета, но я действительно не понимаю, как odoo 12 работает для отношения one2many, у меня есть модуль с именем ms_produk, и моя база данных называется "ms_produk_ms_produk", модуль ms_produk работает как продукт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')

но когда детали написаны так, это выдает ошибку типа «Внутренняя ошибка сервера», когда сервер не запускается, и я изменяю ее на:

# -*- 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>

как это сделать правильно?

1 Ответ

2 голосов
/ 03 июля 2019

Когда вы определяете поле One2many, вам нужно указать отношение к таблице, которую вам нужно загрузить, пожалуйста, обратитесь к этой ссылке , чтобы узнать о полях One2many.

Используя форму, вы можете создатьвид вашей модели.

...