Skip to Content
Odoo Меню
  • Увійти
  • Спробуйте це безкоштовно
  • Додатки
    Фінанси
    • Бухоблік
    • Виставлення рахунку
    • Витрати
    • Електронні таблиці (BI)
    • Документи
    • Підпис
    Продажі
    • CRM
    • Продажі
    • POS Магазин
    • POS Ресторан
    • Підписки
    • Оренда
    Веб-сайти
    • Конструктор веб-сайту
    • Електронна комерція
    • Блог
    • Форум
    • Живий чат
    • Електронне навчання
    Ланцюг поставок
    • Склад
    • Виробництво
    • PLM
    • Купівлі
    • Технічне обслуговування
    • Якість
    Кадри
    • Співробітники
    • Рекрутинг
    • Відпустки
    • Оцінювання
    • Рекомендації
    • Автотранспорт
    Маркетинг
    • Маркетинг соцмереж
    • Email-маркетинг
    • SMS-маркетинг
    • Події
    • Автом. маркетингу
    • Опитування
    Послуги
    • Проект
    • Табелі
    • Виїзне обслуговування
    • Служба підтримки
    • Планування
    • Призначення
    Продуктивність
    • Обговорення
    • Схвалення
    • IoT
    • IP-телефонія
    • База знань
    • WhatsApp
    Сторонні модулі Odoo Studio Платформа Odoo Cloud
  • Сфери
    Роздрібна торгівля
    • Книжковий магазин
    • Магазин одягу
    • Магазин меблів
    • Продуктовий магазин
    • Магазин будівельних матеріалів
    • Магазин іграшок
    Food & Hospitality
    • Бар та паб
    • Ресторан
    • Фастфуд
    • Guest House
    • Дистриб'ютор напоїв
    • Hotel
    Нерухомість
    • Real Estate Agency
    • Архітектурна фірма
    • Будівництво
    • Управління нерухомістю
    • Садівництво
    • Асоціація власників нерухомості
    Консалтинг
    • Бухгалтерська компанія
    • Партнер Odoo
    • Агенція маркетингу
    • Юридична фірма
    • Придбання Талантів
    • Аудит та сертифікація
    Виробництво
    • Textile
    • Metal
    • Меблі
    • Їжа
    • Brewery
    • Корпоративні подарунки
    Здоров'я & Фітнес
    • Спортивний клуб
    • Оптика
    • Фітнес-центр
    • Практики здоров'я
    • Аптека
    • Салон краси
    Trades
    • Ремонтник
    • IT-обладнання та Підтримка
    • Системи сонячної енергії
    • Shoe Maker
    • Cleaning Services
    • HVAC Services
    Інші
    • Nonprofit Organization
    • Екологічна агенція
    • Оренда білбордів
    • Фотографія
    • Лізинг велосипедів
    • Реселлер програмного забезпечення
    Browse all Industries
  • Спільнота
    Навчання
    • Навчальний посібник
    • Документація
    • Сертифікації
    • Тренування
    • Блог
    • Подкаст
    Сприяйте Освіті
    • Програма навчання
    • Бізнес гра Scale Up!
    • Відвідайте Odoo
    Отримайте програмне забезпечення
    • Завантаження
    • Порівняйте версії
    • Релізи
    Співпрацюйте
    • Github
    • Форум
    • Події
    • Переклади
    • Стати партнером
    • Services for Partners
    • Зареєструйте вашу бухгалтерську фірму
    Отримайте послуги
    • Знайдіть партнера
    • Знайдіть бухгалтера
    • Зустріньтеся з консультантом
    • Послуги з впровадження
    • Референси клієнтів
    • Підтримка
    • Оновлення
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Отримати демо
  • Ціни
  • Допомога

Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:

  • CRM
  • e-Commerce
  • Бухоблік
  • Склад
  • PoS
  • Проект
  • MRP
All apps
Вам необхідно зареєструватися, щоб взаємодіяти зі спільнотою.
All Posts Люди Значки
Мітки (View all)
odoo accounting v14 pos v15
Про цей форум
Вам необхідно зареєструватися, щоб взаємодіяти зі спільнотою.
All Posts Люди Значки
Мітки (View all)
odoo accounting v14 pos v15
Про цей форум
Допомога

Is it possible to get ids for filter from a Many2many relation that is on user.

Підписатися

Отримуйте сповіщення про активність щодо цієї публікації

Це запитання позначене
many2onemany2manydomain_filterodoo10
1 Відповісти
6878 Переглядів
Аватар
Samo Arko

I've got a custom module that has a Many2one field on 'product.product'. I would like to extend 'res.users' with a Mayn2Many relation to 'product.product'. 

Is it in some way possible to filter the Many2one relation field 'product.product' in the custom module with the products that are selected in the Many2many field on the user that is logged in. 

And this cannot be done in python with onchange api that then gets the ids and returns it in domain. I don't have any field that I can use the on change except the one for products that I want to filter.  

1
Аватар
Відмінити
Аватар
Sudhir Arya (ERP Harbor Consulting Services)
Найкраща відповідь

You can use m2m field as a domain in m2o field.

Example:

<feld name="product_id" domain="[('id', 'in', product_ids)]"
<field name="product_ids"/>

Let me now if you mean by something else. This will show you only products in m2o field which are selected in m2m field.

You can set the domain dynamically using fields_view_get method.

from lxml import etree

@api.model
def fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False):
res = super(class_name, self).fields_view_get(view_id, view_type, toolbar=toolbar, submenu=submenu)
doc = etree.XML(res['arch'])
for node in doc.xpath("//field[@name='product_id']"):
node.set('domain', "[('id', 'in', product_ids)]")
res['arch'] = etree.tostring(doc)
return res


5
Аватар
Відмінити
Samo Arko
Автор

nope this is not what I need. In this example product_ids is on the same model. I need a way to get them from the active/logged in user. Like domain="[('id', 'in', [user.products_ids.ids])]" but it says that there is no user and no I can't have a user_id relation in the model, else I could do it with api.onchange.

Sudhir Arya (ERP Harbor Consulting Services)

Ah ok. Still you can do it by fields_view_get method. Just override this method and add a domain in the field. In the method you will be able to find the products of the logged in user.

product_ids = self.env.user.product_ids.ids

domain = [('id', 'in', product_ids)]

Samo Arko
Автор

hm... I never used this fields_view_get method, so I'll have to google a bit how to use it. So this forces the domain on the field? So this means that the filter will be active no mater the view? Because if yes I cannot use it, because I need it only in the form view in the list view I need all the records. Can define it only specific xml_id of view?

Sudhir Arya (ERP Harbor Consulting Services)

See my updated answers. You can do it for specific view as well. You can use "view_id" to add the domain on specific view:

self.env('module_name.form_view_xml_id').id == view_id

Samo Arko
Автор

mate thanks... needed a bit to figure out the method. Your example helped. Just needed to change/add

product_ids = self.env.user.products_ids.ids

node.set('domain', "[('id', 'in', {})]".format(tuple(product_ids)))

Enjoying the discussion? Don't just read, join in!

Create an account today to enjoy exclusive features and engage with our awesome community!

Реєстрація
Related Posts Відповіді Переглядів Дія
Domain on Many2many without using a on_chnage
many2many domain_filter odoo10
Аватар
0
лип. 22
2258
Default domain filter from method?
many2many domain_filter odoo10
Аватар
0
трав. 19
4706
[11.0] Hide records from many2many
many2many domain_filter
Аватар
0
серп. 20
2901
Domain filtering many2one field dependent onchange from other field
many2one many2many onchange context domain_filter
Аватар
Аватар
1
квіт. 20
8187
how to get(show) many2many records by selecting the Many2one? in odoo10
many2one customers many2many onchange odoo10
Аватар
Аватар
2
січ. 20
4871
Спільнота
  • Навчальний посібник
  • Документація
  • Форум
Open Source
  • Завантаження
  • Github
  • Runbot
  • Переклади
Послуги
  • Хостинг Odoo.sh
  • Підтримка
  • Оновлення
  • Кастомні доробки
  • Навчання
  • Знайдіть бухгалтера
  • Знайдіть партнера
  • Стати партнером
Про нас
  • Наша компанія
  • Торгові активи
  • Зв'яжіться з нами
  • Вакансії
  • Події
  • Подкаст
  • Блог
  • Клієнти
  • Юридичні документи • Конфіденційність
  • Безпека
الْعَرَبيّة Català 简体中文 繁體中文 (台灣) Čeština Dansk Nederlands English Suomi Français Deutsch हिंदी Bahasa Indonesia Italiano 日本語 한국어 (KR) Lietuvių kalba Język polski Português (BR) română русский язык Slovenský jazyk slovenščina Español (América Latina) Español ภาษาไทย Türkçe українська Tiếng Việt

Odoo - це набір програм для роботи з відкритим кодом, які охоплюють всі ваші потреби компанії: CRM, електронна комерція, бухгалтерський облік, склад, точка продажу, управління проектами тощо.

Унікальна пропозиція Odoo - це одночасно дуже проста у використанні та повністю інтегрована.

Website made with

Odoo Experience on YouTube

1. Use the live chat to ask your questions.
2. The operator answers within a few minutes.

Live support on Youtube
Watch now