Openerp:如何在交货订单中显示新字段

Openerp:如何在交货订单中显示新字段,openerp,picking,Openerp,Picking,我已在stock.picking中添加了新字段,并希望它们在表单视图中显示为交货订单笔记本中的新页面 我想我遇到了问题,因为交货订单中使用的模型是stock.picking.out,它继承了stock.picking 据我所见,使用的表单视图是stock.view\u picking\u out\u表单,它继承了stock.view\u picking\u表单 我在Openerp7中尝试了很多东西,但都没有成功 在版本6.1中,它是这样工作的 .py: xml: 库存、拣选、安全继承 选股

我已在stock.picking中添加了新字段,并希望它们在表单视图中显示为交货订单笔记本中的新页面

我想我遇到了问题,因为交货订单中使用的模型是stock.picking.out,它继承了stock.picking

据我所见,使用的表单视图是stock.view\u picking\u out\u表单,它继承了stock.view\u picking\u表单

我在Openerp7中尝试了很多东西,但都没有成功

在版本6.1中,它是这样工作的

.py:

xml:


库存、拣选、安全继承
选股
有人能帮忙吗


谢谢。

交货单
是一个继承了
'stock.picking'
的对象,现在
交货单
对象名是
'stock.picking.out'

下面是
.py文件中的示例

class stock_picking_out(osv.Model):
    _inherit = 'stock.picking.out'

    _columns = {
        #here declare your field 
    }
<record id="view_stock_picking_out_extended_form" model="ir.ui.view">
    <field name="name">stock.picking.out.extended.form</field>
    <field name="model">stock.picking.out</field>
    <field name="inherit_id" ref="stock.view_picking_form"/>
    <field name="arch" type="xml">
            <field name="backorder_id" position="after">
                #place here your customize field
            </field>
    </field>
</record>
现在在
.xml文件中

class stock_picking_out(osv.Model):
    _inherit = 'stock.picking.out'

    _columns = {
        #here declare your field 
    }
<record id="view_stock_picking_out_extended_form" model="ir.ui.view">
    <field name="name">stock.picking.out.extended.form</field>
    <field name="model">stock.picking.out</field>
    <field name="inherit_id" ref="stock.view_picking_form"/>
    <field name="arch" type="xml">
            <field name="backorder_id" position="after">
                #place here your customize field
            </field>
    </field>
</record>

库存、挑选、取出、扩展、表格
选股
#在此处放置自定义字段
完成此操作后,您将看到
交货订单视图
,并希望看到您的期望输出


希望这能对您有所帮助。

交货单
是继承了
的“stock.picking”的对象
,现在
交货单
的对象名是
的“stock.picking.out”

下面是
.py文件中的示例

class stock_picking_out(osv.Model):
    _inherit = 'stock.picking.out'

    _columns = {
        #here declare your field 
    }
<record id="view_stock_picking_out_extended_form" model="ir.ui.view">
    <field name="name">stock.picking.out.extended.form</field>
    <field name="model">stock.picking.out</field>
    <field name="inherit_id" ref="stock.view_picking_form"/>
    <field name="arch" type="xml">
            <field name="backorder_id" position="after">
                #place here your customize field
            </field>
    </field>
</record>
现在在
.xml文件中

class stock_picking_out(osv.Model):
    _inherit = 'stock.picking.out'

    _columns = {
        #here declare your field 
    }
<record id="view_stock_picking_out_extended_form" model="ir.ui.view">
    <field name="name">stock.picking.out.extended.form</field>
    <field name="model">stock.picking.out</field>
    <field name="inherit_id" ref="stock.view_picking_form"/>
    <field name="arch" type="xml">
            <field name="backorder_id" position="after">
                #place here your customize field
            </field>
    </field>
</record>

库存、挑选、取出、扩展、表格
选股
#在此处放置自定义字段
完成此操作后,您将看到
交货订单视图
,并希望看到您的期望输出


希望这对你有帮助。

试试这个..它很有效。。我试过了你说的没错你应该继承股票 从openerp.osv导入osv

从openerp.osv导入字段

类交货单(osv.osv):

交货单

查看文件

<openerp>
<data>
    <record id="view_delivery_order_form" model="ir.ui.view">
        <field name="name">stock.picking.out.form</field>
        <field name="model">stock.picking.out</field>
        <field name="type">form</field>
        <field name="inherit_id" ref="stock.view_picking_form"/>
        <field name="arch" type="xml">
            <xpath expr="//notebook/page[@string='Additional Info']" position="after">
                <page string="New Page">
                    <group colspan="4">
                        <field name="cname"/>
                    </group>
                </page>
            </xpath>
        </field>
    </record>
</data>

股票、挑选、挑选、表格
选股
类型


希望它有帮助。

试试这个。。它很管用。。我试过了你说的没错你应该继承股票 从openerp.osv导入osv

从openerp.osv导入字段

类交货单(osv.osv):

交货单

查看文件

<openerp>
<data>
    <record id="view_delivery_order_form" model="ir.ui.view">
        <field name="name">stock.picking.out.form</field>
        <field name="model">stock.picking.out</field>
        <field name="type">form</field>
        <field name="inherit_id" ref="stock.view_picking_form"/>
        <field name="arch" type="xml">
            <xpath expr="//notebook/page[@string='Additional Info']" position="after">
                <page string="New Page">
                    <group colspan="4">
                        <field name="cname"/>
                    </group>
                </page>
            </xpath>
        </field>
    </record>
</data>

股票、挑选、挑选、表格
选股
类型


希望它能有所帮助。

我已经尝试了很多次,我唯一的解决方案是:继承
stock.picking.out
和普通
stock.picking
,两者都有字段。一些非常简单的例子:

选股:

_columns = {
            'yourcolumn':fields. #and so on
           }
股票。挑选。挑选:

_columns = {
            'yourcolumn':fields. #and so on
           }
现在可以在视图中使用字段“yourcolumn”


:-)

我已经试过很多次了,我唯一的解决办法是:继承
股票。挑选。取出
和普通
股票。挑选
,两者都有字段。一些非常简单的例子:

选股:

_columns = {
            'yourcolumn':fields. #and so on
           }
股票。挑选。挑选:

_columns = {
            'yourcolumn':fields. #and so on
           }
现在可以在视图中使用字段“yourcolumn”


:-)

您可能希望避免在stock.picking和stock.picking.out中同时定义列 像这样

from openerp.osv import orm, fields

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

  _columns = {
      'new_field': fields.many2one('other.model', 'New field'),
  }

class StockPickingOut(orm.Model):

  _inherit = 'stock.picking.out'

  def __init__(self, pool, cr):
    super(StockPickingOut, self).__init__(pool, cr)
    self._columns['new_field'] = self.pool['stock.picking']._columns['new_field']
真正有用的是有几个字段要添加

这里有完整的信息

还有一种解决方案:使用如下抽象模型:

from openerp.osv import orm, fields

class AbstractStockPicking(orm.AbstractModel):
  _inherit = 'abstract.logistic.flow'
  _name = 'abstract.stock.picking'

  _columns = {
      'new_field': fields.many2one('other.model', 'New field'),
  }

class StockPicking(orm.Model):
  _inherit = ['stock.picking', 'abstract.stock.picking']
  _name = 'stock.picking'

  def __init__(self, pool, cr):
    super(StockPicking, self).__init__(pool, cr)
    self._columns['new_field'] = \
        self.pool['abstract.stock.picking']._columns[new_field]


class StockPickingOut(orm.Model):
  _inherit = ['stock.picking.out', 'abstract.stock.picking']
  _name = 'stock.picking.out'

  def __init__(self, pool, cr):
    super(StockPickingOut, self).__init__(pool, cr)
    self._columns['new_field'] = \
        self.pool['abstract.stock.picking']._columns[new_field]
这里有一个真实的例子:

h t t p://bazaar.launchpad.net/~akretion team/+junk/logistic center/view/head:/connector_logistic_center/stock.py

对于视图,以下是一个示例:

<record id="view_picking_form_logis_out" model="ir.ui.view">
  <field name="model">stock.picking.out</field>
  <field name="inherit_id" ref="stock.view_picking_form"/>
  <field name="arch" type="xml">
    <field name="stock_journal_id" position="after">
        <field name="logistic_center"/>
    </field>
  </field>
</record>

选股
详情如下:


h t t p://bazaar.launchpad.net/~akretion team/+junk/logistic center/view/head:/connector_logistic_center/stock_view.xml#L62

您可能希望避免在stock.picking和stock.picking.out中定义列 像这样

from openerp.osv import orm, fields

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

  _columns = {
      'new_field': fields.many2one('other.model', 'New field'),
  }

class StockPickingOut(orm.Model):

  _inherit = 'stock.picking.out'

  def __init__(self, pool, cr):
    super(StockPickingOut, self).__init__(pool, cr)
    self._columns['new_field'] = self.pool['stock.picking']._columns['new_field']
真正有用的是有几个字段要添加

这里有完整的信息

还有一种解决方案:使用如下抽象模型:

from openerp.osv import orm, fields

class AbstractStockPicking(orm.AbstractModel):
  _inherit = 'abstract.logistic.flow'
  _name = 'abstract.stock.picking'

  _columns = {
      'new_field': fields.many2one('other.model', 'New field'),
  }

class StockPicking(orm.Model):
  _inherit = ['stock.picking', 'abstract.stock.picking']
  _name = 'stock.picking'

  def __init__(self, pool, cr):
    super(StockPicking, self).__init__(pool, cr)
    self._columns['new_field'] = \
        self.pool['abstract.stock.picking']._columns[new_field]


class StockPickingOut(orm.Model):
  _inherit = ['stock.picking.out', 'abstract.stock.picking']
  _name = 'stock.picking.out'

  def __init__(self, pool, cr):
    super(StockPickingOut, self).__init__(pool, cr)
    self._columns['new_field'] = \
        self.pool['abstract.stock.picking']._columns[new_field]
这里有一个真实的例子:

h t t p://bazaar.launchpad.net/~akretion team/+junk/logistic center/view/head:/connector_logistic_center/stock.py

对于视图,以下是一个示例:

<record id="view_picking_form_logis_out" model="ir.ui.view">
  <field name="model">stock.picking.out</field>
  <field name="inherit_id" ref="stock.view_picking_form"/>
  <field name="arch" type="xml">
    <field name="stock_journal_id" position="after">
        <field name="logistic_center"/>
    </field>
  </field>
</record>

选股
详情如下:


h t p://bazaar.launchpad.net/~akretion team/+junk/logistic center/view/head:/connector_logistic_center/stock_view.xml#L62

包括这里提供的解决方案在内,我所尝试的一切都没有帮助。因此,我最终为交货订单创建了一个新视图。无论如何,谢谢您的帮助。

我尝试过的任何东西都帮不上忙,包括这里提供的解决方案。因此,我最终为交货订单创建了一个新视图。无论如何,谢谢你的帮助。

你能提供你的
.py
.xml
文件吗?你是如何做到的?将信息添加到问题帖子中。谢谢。你能提供你的
.py
.xml