Одоо. Данные поля отображения дерева/формы

У меня проблема с представлением дерева/формы в Odoo.

В моей модели есть такие классы: https://yadi.sk/d/sCLVo3gHtbVEu

class URLList(models.Model):
    _name = 'webvisitorcalc.url_list'

    url = fields.Char(string="URL", required=True)
    url_parametes = fields.Char(string="URL parameters") #пераметры URLб всё что идёт после ?

    target_session_id = fields.One2many('webvisitorcalc.session_visitor', 'target_url_ids', string='Target URL')

    site_trip_prevouse_id = fields.One2many('webvisitorcalc.site_trip', 'url_prevouse_ids', string='Prevouse URL')
    site_trip_current_id = fields.One2many('webvisitorcalc.site_trip', 'url_current_ids', string='Current URL')


    remote_sites_id = fields.One2many('webvisitorcalc.remote_sites', 'site_url_ids', string='Remote site page with URL')
    remote_sites_target_url_id = fields.One2many('webvisitorcalc.remote_sites', 'target_url_ids', string='URL on remote site page')

    @api.multi
    def url_exist(self, cr, SUPERUSER_ID, urlForCheck):
        _logger.error("Check URL exist in DB ")
        result = False
        if (self.search_count(cr, SUPERUSER_ID, [('url', '=', urlForCheck)])>0):
            result = True
        return result

class SiteTrip(models.Model):
    _name = 'webvisitorcalc.site_trip'

    session_ids = fields.Many2one('webvisitorcalc.session_visitor', string='Session ID', index=True)
    url_prevouse_ids = fields.Many2one('webvisitorcalc.url_list', string='Prevouse URL', index=True)
    url_current_ids = fields.Many2one('webvisitorcalc.url_list', string='Current URL', index=True)

Шаблон для этой модели: https://yadi.sk/d/Ob0o65PutbVFA

<record model="ir.actions.act_window" id="site_trip_list_action">
    <field name="name">Site trip</field>
    <field name="res_model">webvisitorcalc.site_trip</field>
    <field name="view_type">form</field>
    <field name="view_mode">tree,form</field>
    <field name="help" type="html">
        <p class="oe_view_nocontent_create">Create the first record for site trip
        </p>
    </field>
</record>
<record model="ir.actions.act_window" id="url_list_list_action">
    <field name="name">URL list</field>
    <field name="res_model">webvisitorcalc.url_list</field>
    <field name="view_type">form</field>
    <field name="view_mode">tree,form</field>
    <field name="help" type="html">
        <p class="oe_view_nocontent_create">Create the first url
        </p>
    </field>
</record>

<record model="ir.ui.view" id="site_trip_tree_view">
    <field name="name">site_trip.tree</field>
    <field name="model">webvisitorcalc.site_trip</field>
    <field name="arch" type="xml">
        <tree string="URL list tree">
            <field name="session_ids"/>
            <field name="url_prevouse_ids" string="PrevURL">
            </field>
            <!--<field name="url_prevouse_ids"/>-->
            <field name="url_current_ids"/>
        </tree>
    </field>
</record>

<record model="ir.ui.view" id="url_list_tree_view">
    <field name="name">url_list.tree</field>
    <field name="model">webvisitorcalc.url_list</field>
    <field name="arch" type="xml">
        <tree string="URL list tree">
            <field name="url"/>
            <field name="url_parametes"/>
        </tree>
    </field>
</record>

<menuitem id="site_trip_menu" name="Site trip" parent="webvisitorcalc_menu"
          action="site_trip_list_action"/>

<menuitem id="url_list_menu" name="URL list" parent="webvisitorcalc_menu"
          action="url_list_list_action"/>

Скриншоты здесь:

Древовидное представление класса SiteTrip http://i.stack.imgur.com/FjRDK.png

Представление формы для класса SiteTrip http://i.stack.imgur.com/uDbOp.png

Древовидное представление для класса URLList http://i.stack.imgur.com/tXzqL.png

Представление формы для класса URLList http://i.stack.imgur.com/oVnqg.png

Как видите, URLList отображается нормально. Для класса SiteTrip присутствует проблема. Поле отображает не данные из URLList. Это хранимый в поле элемент, такой как webvisitorcalc.url_list.ID (массив?). Как я могу отображать реальные данные в этом поле (например, URL: http://some-site.com/page.html)? URL-адрес в URLList должен быть уникальным. SiteTrip должен хранить только идентификатор записи URLList.

УПД:

class RemoteSites(models.Model):
    _name = 'webvisitorcalc.remote_sites'

    site_id = advert_company_id = fields.One2many('webvisitorcalc.site_list', 'remote_sites_ids', string='Site')
    site_url_ids = fields.Many2one('webvisitorcalc.url_list', string='URL page ')
    target_url_ids = fields.Many2one('webvisitorcalc.url_list', string='URL target page')

person Skif    schedule 25.07.2016    source источник
comment
включите свой код здесь, в stackoverflow, другим будет проще помочь вам   -  person danidee    schedule 25.07.2016
comment
Я не могу этого сделать. Каждый раз парсер сообщает об ошибке.   -  person Skif    schedule 25.07.2016
comment
это невероятно. Теперь работает нормально. Я потерял один час, пытаясь опубликовать этот пост с кодом.   -  person Skif    schedule 25.07.2016
comment
где код модели webvisitorcalc.remote_sites   -  person danidee    schedule 25.07.2016


Ответы (1)


У вас, очевидно, нет поля имени в вашей модели webvisitorcalc.url_list. Odoo нужно это, чтобы использовать его как имя в веб-клиенте, где бы вы ни использовали эту модель, например. поле many2one или в навигационной цепочке.

Таким образом, либо вы определяете поле имени, либо устанавливаете _name в своем классе с другим идентификатором поля.

Вы также можете (пере-)определить метод display_name в своей модели (достаточно примеров в коде Odoo), где вы можете делать больше интересных вещей с отображаемым именем записи :-)

person CZoellner    schedule 26.07.2016
comment
Tnx, я постараюсь сделать это! - person Skif; 26.07.2016
comment
Какой способ вы использовали? - person CZoellner; 26.07.2016
comment
Я переопределил собственные классы :) Переименовал поля _my_liefd_name в name. Все работает нормально! - person Skif; 28.07.2016