2016-06-19 2 views
0

Я хочу добавить selection field, как показано ниже:Добавить поле в product.pricelist.item в odoo

class product_pricelist_item1(models.Model): 
    _inherit = 'product.pricelist.item' 

    x_type = fields.Selection(selection=[('sample', 'Sample'),('moq', 'MOQ'),('others', 'Others')],string="Choices") 

в product.pricelist.item форме. Я пишу код XML, как показано ниже:

 <record id="product_pricelist_item_form_view_with_code" model="ir.ui.view"> 
      <field name="name">product.pricelist.item.form</field> 
      <field name="model">product.pricelist.item</field> 
      <field name="inherit_id" ref="product.product_pricelist_item_form_view" /> 
      <field name="arch" type="xml"> 
       <field name="min_quantity" position="after"> 
        <field name="x_type"/> 
       </field> 
      </field> 
     </record> 

Но когда я открываю прейскурант он дает мне ошибку вроде этого:

Odoo Server Error Traceback (most recent call last): File "C:\Odoo 9.0-20151122\server\.\openerp\http.py" 599, line in _handle_exception File "C:\Odoo 9.0-20151122\server\.\openerp\http.py", line 636, in dispatch File "C:\Odoo 9.0-20151122\server\.\openerp\http.py", line 315, in _call_function File "C:\Odoo 9.0-20151122\server\.\openerp\service\model.py", line 118, in wrapper File "C:\Odoo 9.0-20151122\server\.\openerp\http.py", line 308, in checked_call File "C:\Odoo 9.0-20151122\server\.\openerp\http.py", line 887, in __call__ File "C:\Odoo 9.0-20151122\server\.\openerp\http.py", line 465, in response_wrap File "C:\Odoo 9.0-20151122\server\openerp\addons\web\controllers\main.py", line 971, in call_kw File "C:\Odoo 9.0-20151122\server\openerp\addons\web\controllers\main.py", line 963, in _call_kw File "C:\Odoo 9.0-20151122\server\.\openerp\api.py", line 232, in wrapper File "C:\Odoo 9.0-20151122\server\.\openerp\models.py", line 3173, in read File "C:\Odoo 9.0-20151122\server\.\openerp\api.py", line 230, in wrapper File "C:\Odoo 9.0-20151122\server\.\openerp\models.py", line 3219, in read File "C:\Odoo 9.0-20151122\server\.\openerp\models.py", line 5684, in __getitem__ File "C:\Odoo 9.0-20151122\server\.\openerp\fields.py", line 807, in __get__ File "C:\Odoo 9.0-20151122\server\.\openerp\fields.py", line 914, in determine_value File "C:\Odoo 9.0-20151122\server\.\openerp\fields.py", line 869, in compute_value File "C:\Odoo 9.0-20151122\server\.\openerp\fields.py", line 859, in _compute_value File "C:\Odoo 9.0-20151122\server\.\openerp\api.py", line 230, in wrapper File "C:\Odoo 9.0-20151122\server\.\openerp\api.py", line 398, in new_api File "C:\Odoo 9.0-20151122\server\openerp\addons\product\pricelist.py", line 331, in _get_pricelist_item_name_price File "C:\Odoo 9.0-20151122\server\.\openerp\fields.py", line 807, in __get__ File "C:\Odoo 9.0-20151122\server\.\openerp\fields.py", line 905, in determine_value File "C:\Odoo 9.0-20151122\server\.\openerp\api.py", line 230, in wrapper File "C:\Odoo 9.0-20151122\server\.\openerp\models.py", line 3278, in _prefetch_field File "C:\Odoo 9.0-20151122\server\.\openerp\api.py", line 230, in wrapper File "C:\Odoo 9.0-20151122\server\.\openerp\models.py", line 3208, in read File "C:\Odoo 9.0-20151122\server\.\openerp\api.py", line 230, in wrapper File "C:\Odoo 9.0-20151122\server\.\openerp\models.py", line 3346, in _read_from_database File "C:\Odoo 9.0-20151122\server\.\openerp\sql_db.py", line 139, in wrapper File "C:\Odoo 9.0-20151122\server\.\openerp\sql_db.py", line 215, in execute ProgrammingError: column product_pricelist_item.x_type does not exist LINE 1: ...duct_pricelist_item"."create_uid" as "create_uid","product_p...

+0

Вы перезапустили сервер и обновили свой модуль? – kifcaliph

+0

да, конечно ,,,! –

+0

во время обновления он не дает мне никакой ошибки, но когда я иду, чтобы открыть форму списка прайс-листов, тогда он дает мне эту ошибку ... –

ответ

1

При расширении модели, если вы хотите, чтобы добавить возможные значения в поле выбора, вы можете использовать ключевое слово selection_add аргумент:

class SomeModel(models.Model): 
    _inherits = 'some.model' 
    type = fields.Selection(selection_add=[('b', 'B'), ('c', 'C')]) 

reference

Попробуйте следующие действия

class product_pricelist_item(models.Model): 
    _inherit='product.pricelist.item' 

    x_type= fields.Selection(selection_add=[('b', 'B')]) 

и для XML

<record id='product_product_pricelist_item_form_view' model='ir.ui.view'> 
    <field name="model">product.pricelist.item</field> 
    <field name="inherit_id" ref="product.product_pricelist_item_form_view"/> 
    <field name="arch" type="xml"> 
     <form position="after"> 
     <field name="x_type" widget="radio"/> 
     </form> 
    </field> 
    </record> 

это должно работать.