вставьте m2o в m2o в зависимости от функции! Odoo - PullRequest
0 голосов
/ 12 июля 2020
class Egypt(models.Model):
    _name = 'egypt'
    _rec_name = 'id'

    id = fields.Integer()
    name = fields.Char()

class Germany(models.Model):
    _name = 'germany'
    _rec_name = 'id'

    id = fields.Integer()
    name = fields.Char()

class MyModule(models.Model):
    _name = 'my.module'

    country = fields.Selection([('1', 'Egypt'),
                            ('2', 'Germany'),
                            ], default='1')

    egypt_towns = fields.Many2one('egypt.name')
    geramny_towns = fields.Many2one('geramny.name')
    towns = fields.Many2one()

в XML Код

<field name="country"/>
<field name="towns"/>
  1. если страна Египет, поле городов = egypt_towns, а если страна США Германия, города = geramny_towns Как?

  2. (egypt.name) не работает, как решить? Примечание: не используйте name_get, это изменит его во всей системе, чего я не хочу.

Заранее спасибо.

1 Ответ

0 голосов
/ 13 июля 2020

Полагаю, я должен быть примерно таким:

#instead on my.countries you can use res.country also
class Countries(models.Model):
    _name = 'my.countries'

    name = fields.Char()

class Towns(models.Model):
    _name = 'my.towns'

    name = fields.Char()
    country_id = fields.Many2one('my.countries', string='Country')



class MyModule(models.Model):
    _name = 'my.module'

    country_id = fields.Many2one('my.countries', string='Country')
    town_id = fields.Many2one('my.towns', string='Town', domain=[('country_id', '=', country_id)])
...