Kurama
Kurama

Reputation: 47

odoo, see id and nt the name in dropdown

I don't see where is my error, on my product page, I see the dropdown to create/choose a brand but the value is : clicshopping.manufacturer,1 and not for example Asus

When I look my brand page, I see asus has been created and all is correct.

there a part of xml template on my product.

Do you have and idea ?

Thank you

 <record  model="ir.ui.view" id="product_template_search_view">
    <field name="name">product.template.search</field>
    <field name="model">product.template</field>
    <field name="inherit_id" ref="product.product_template_search_view"/>
    <field name="arch" type="xml">
      <field name="categ_id" position="after">



        <field name="clicshopping_product_manufacturer_id"/>


      </field>
      <group string='Group by...' position="inside">




        <filter string="Manufacturer" name="groupby_manufacturer" domain="[]" context="{'group_by' : 'clicshopping_product_manufacturer_id'}"/>



      </group>
    </field>
  </record>

   <record model="ir.ui.view" id="product_template_form_manufacturer">
      <field name="name">product.template.product.form</field>
      <field name="model">product.template</field>
      <field name="inherit_id" ref="clicshopping.template_product_form_view" />
      <field name="arch" type="xml">
         <field name="clicshopping_products_id" position="after"  >


          <field name="clicshopping_product_manufacturer_id" placeholder="Brand"/>




        </field>
      </field>
   </record>

    <record model="ir.actions.act_window" id="action_clicshopping_manufacturer">
        <field name="name">Brand</field>
        <field name="res_model">clicshopping.manufacturer</field>
        <field name="view_type">form</field>
        <field name="view_mode">tree,form</field>
    </record>

    <menuitem name="Brand management" id="menu_clicshopping_manufacturer" action="action_clicshopping_manufacturer" parent="product.prod_config_main"/>

There the code of my .py

from openerp.osv import orm, fields
from openerp.tools.translate import _

class clicshopping_manufacturer(orm.Model):
    _name = 'clicshopping.manufacturer'
    _columns = {
        'clicshopping_manufacturers_id': fields.char('Brand manufacturer Id', size=5, help="Id manufacturer Brand table of ClicShopping must be unique"),
        'clicshopping_manufacturers_name': fields.char('Brand Name', size=70, help='Name of brand manufacturer.'),
        'clicshopping_manufacturers_url': fields.char('Brand Url', translate=True, size=70, help='Url of brand manufacturer.'),
        'clicshopping_partner_id': fields.many2one('res.partner','Partner',  help='Select a partner for this brand if it exists.',  ondelete='restrict'),
        'clicshopping_manufacturers_image': fields.binary('brand logo'),
        'clicshopping_manufacturers_status': fields.boolean('Brand Manufacturer Status',  default='1', help="If a manufacturer brand is not active, it will not be displayed in the catalog"),
        'clicshopping_manufacturer_description': fields.text('Description', translate=True),
        'clicshopping_manufacturer_seo_title': fields.char('Brand manufacturer Seo title', translate=True, size=70, help="If it empty, default in ClicSshopping will be taken"),
        'clicshopping_manufacturer_seo_description': fields.char('Brand manufacturer Seo Description', translate=True, size=150, help="If it empty, default in ClicSshopping will be taken"),
        'clicshopping_manufacturer_seo_keyword': fields.text('Brand manufacturer Seo Keywords', translate=True, help="If it empty, default in ClicSshopping will be taken"),
    }


class product_template(orm.Model):
    _inherit = 'product.template'
    _columns = {
        'clicshopping_product_manufacturer_id': fields.many2one('clicshopping.manufacturer','Brand', help='Select a brand for this product.')
    }

Upvotes: 0

Views: 1321

Answers (1)

Ludwik Trammer
Ludwik Trammer

Reputation: 25032

You need to declare which field is used for the object name, using the _rec_name attribute. In your case:

class clicshopping_manufacturer(orm.Model):
    _name = 'clicshopping.manufacturer'
    _rec_name = 'clicshopping_manufacturers_name'

    # ...

Alternatively, you could just rename clicshopping_manufacturers_name to name, since name is the default value for _rec_name.

I'd choose the second option, if I were you - I think all your field names are way too long, to be honest. I don't see any benefit to prefixing almost all your field names with "clicshopping_manufacturers". This will slow you down and make your code much less readable.

Upvotes: 1

Related Questions