私はモジュールfleet
からfleet.vehicle
モデルにstock.location
から継承するこの方法を持っている:自動的stock.locationを作成する - Odoo V9コミュニティ
class fleet_vehicle(models.Model):
_inherit = 'fleet.vehicle'
location_id = fields.Many2one("stock.location", string="Almacén Origen", store=True)
だから、これはfleet.vehicle
モデルにモデルstock.location
をgrings、これが私の見解です。
<record model='ir.ui.view' id='fleet_vehicle_form'>
<field name="name">fleet.vehicle.form</field>
<field name="model">fleet.vehicle</field>
<field name="inherit_id" ref='fleet.fleet_vehicle_form'/>
<field name="arch" type="xml">
<xpath expr="//form/sheet/group" position="after">
<group string="Almacén correspondiente" col="2">
<field name="location_id"/>
</group>
</xpath>
</field>
</record>
これまでのところ、fleet.vehicle
フォームから新しい車両がデータベースに追加されるたびに1つの場所を作成するように求められました。
ご覧のとおり、モデルとフィールドを追加して場所を追加しましたが、新しい車両を保存するたびにどのようにこの場所を作成できますか?
例えば、私はこのように、たとえば、デフォルトの場所、送信元と送信先のものを宣言する方法を知って、車両Opel/Astra
が、これは自動的に、システムにOpel/Astra
と呼ばれる新しい場所を作成する必要があります作成します。
def _static_location(self):
return self.env.ref('fleet_stock.location_stock')
:もちろん同様に、
data
フォルダ内のXMLファイルに宣言されている
x_location_dest_id = fields.Many2one('stock.location', string=u'Ubicacion Destino de Productos', required=True,
readonly=False, default=_static_location,
help="Location where the system will look for components.")
:
は次にように、フィールドから関数を呼び出します
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data noupdate="1">
<record id="location_stock" model="stock.location">
<field name="name">ReparacionUnidades</field>
<field name="location_id" ref="stock.stock_location_locations_virtual"/>
<field name="usage">production</field>
<field name="company_id"></field>
</record>
</data>
</openerp>
ここでは、すでに存在する場所ではなく、fleet.vehicle
車の名前に応じて新しい動作を作成するにはどうすればよいですか?
こんにちは、申し訳ありませんが、私は必要なものですが、v9 APIにアプローチする方法がわかりません。いくつかの例を教えてください。 – NeoVe
あなた自身で書くことができると確信しています。 'self.env ['stock.location']。create({'name':self.car_name})'これは作成元の位置ですが、前に '' @ api.onchange( 'car_name') 'あなたはそれを検索しなければなりません: 'self.env ['stock.location']。search([( 'name'、 '='、self.car_name)])'。私の思うにそれは非常に自明 –