Skip to Content
Odoo मेन्यू
  • साइन इन करें
  • मुफ़्त में आज़माएं
  • ऐप्लिकेशन
    फ़ाइनेंस
    • अकाउंटिंग
    • इनवॉइसिंग
    • एक्सपेंस
    • स्प्रेडशीट (बीआई)
    • डॉक्यूमेंट्स
    • साइन
    सेल्स
    • सीआरएम
    • सेल्स
    • पीओएस शॉप
    • पीओएस रेस्टोरेंट
    • सब्सक्रिप्शन
    • रेंटल
    वेबसाइट
    • वेबसाइट बिल्डर
    • ई-कॉमर्स
    • ब्लॉग
    • फ़ोरम
    • लाइव चैट
    • ई-लर्निंग
    सप्लाई चेन
    • इन्वेंट्री
    • मैन्युफ़ैक्चरिंग
    • पीएलएम
    • परचेज़
    • मेंटेनेंस
    • क्वालिटी
    मानव संसाधन
    • कर्मचारी
    • रिक्रूटमेंट
    • टाइम ऑफ़
    • अप्रेज़ल
    • रेफ़रल
    • फ़्लीट
    मार्केटिंग
    • सोशल मार्केटिंग
    • ईमेल मार्केटिंग
    • एसएमएस मार्केटिंग
    • इवेंट
    • मार्केटिंग ऑटोमेशन
    • सर्वे
    सेवाएं
    • प्रोजेक्ट
    • टाइमशीट
    • फ़ील्ड सर्विस
    • हेल्पडेस्क
    • प्लानिंग
    • अपॉइंटमेंट
    प्रॉडक्टिविटी
    • डिस्कस
    • आर्टिफ़िशियल इंटेलिजेंस
    • आईओटी
    • वीओआईपी
    • नॉलेज
    • WhatsApp
    तीसरे पक्ष के ऐप्लिकेशन Odoo स्टूडियो Odoo क्लाउड प्लेटफ़ॉर्म
  • इंडस्ट्री
    रीटेल
    • बुक स्टोर
    • क्लोदिंग स्टोर
    • फ़र्नीचर स्टोर
    • ग्रॉसरी स्टोर
    • हार्डवेयर स्टोर
    • टॉय स्टोर
    फ़ूड & हॉस्पिटैलिटी
    • बार और पब
    • रेस्टोरेंट
    • फ़ास्ट फ़ूड
    • गेस्ट हाउस
    • बेवरिज डिस्ट्रीब्यूटर
    • होटल
    रियल एस्टेट
    • Real Estate Agency
    • आर्किटेक्चर फ़र्म
    • कंसट्रक्शन
    • Property Management
    • गार्ड्निंग
    • प्रॉपर्टी ओनर असोसिएशन
    कंसल्टिंग
    • अकाउंटिंग फ़र्म
    • Odoo पार्टनर
    • मार्केटिंग एजेंसी
    • लॉ फ़र्म
    • टैलेंट ऐक्विज़िशन
    • ऑडिट & सर्टिफ़िकेशन
    मैन्युफ़ैक्चरिंग
    • टेक्सटाइल
    • धातु
    • फ़र्नीचर
    • फ़ूड
    • ब्रुअरी
    • कॉर्पोरेट गिफ़्ट
    हेल्थ & फिटनेस
    • स्पोर्ट्स क्लब
    • आईवियर स्टोर
    • फिटनेस सेंटर
    • वेलनेस प्रैक्टिशनर
    • फॉर्मेसी
    • हेयर सैलून
    Trades
    • Handyman
    • आईटी हार्डवेयर & सपोर्ट
    • Solar Energy Systems
    • Shoe Maker
    • साफ-सफाई से जुड़ी सेवाएं
    • HVAC सर्विस
    अन्य
    • गैर-लाभकारी संगठन
    • एन्वायरमेंटल एजेंसी
    • बिलबोर्ड रेंटल
    • फ़ोटोग्राफी
    • बाइक लीजिंग
    • सॉफ़्टवेयर रीसेलर
    सभी इंडस्ट्री को ब्राउज़ करें
  • कम्यूनिटी
    सीखें
    • ट्यूटोरियल्स
    • दस्तावेज़
    • सर्टिफ़िकेशन
    • ट्रेनिंग
    • ब्लॉग
    • पॉडकास्ट
    शिक्षा को बढ़ावा दें
    • एजुकेशन प्रोग्राम
    • स्केल अप! बिजनेस गेम
    • Odoo के ऑफ़िस में आएं
    सॉफ़्टवेयर पाएं
    • डाउनलोड
    • वर्शन की तुलना करें
    • रिलीज़
    साथ मिलकर काम करें
    • Github
    • फ़ोरम
    • इवेंट
    • अनुवाद
    • पार्टनर बनें
    • Services for Partners
    • अपना अकाउंटिंग फ़र्म रजिस्टर करें
    सेवाएं पाएं
    • पार्टनर ढूंढें
    • अकाउंटेंट खोजें
    • सलाहकार की मदद लें
    • इम्प्लिमेंटेशन सेवाएं
    • कस्टमर रेफ़रेंस
    • सहायता
    • अपग्रेड
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    डेमो देखें
  • कीमत
  • सहायता
You need to be registered to interact with the community.
All Posts People Badges
टैग (View all)
odoo accounting v14 pos v15
About this forum
You need to be registered to interact with the community.
All Posts People Badges
टैग (View all)
odoo accounting v14 pos v15
About this forum
सहायता

Dynamic Selection List on Run Time

Subscribe

Get notified when there's activity on this post

This question has been flagged
developmentproductproduct_codeodoo
2 Replies
2310 डेटा देखने का तरीका
अवतार
Junaid Alam

I want to get the list of the character fields from another model depending upon the matching of one field between 2 models, I wrote the code, the data is coming in the logs, but isn't getting assigned to the Selection field, can anyone help me with it?

0
अवतार
खारिज करें
Ray Carnes (ray)

Your question is very theoretical. Can you post your code or something specific? Where would readers start if they wanted to help?

अवतार
Cybrosys Techno Solutions Pvt.Ltd
Best Answer

Hi,

Please refer to the code:



from odoo import models, fields, api


class YourModel(models.Model):

    _name = 'your.model'


    account_id = fields.Many2one(

        'account.account',

        string='Fixed Asset Account',

        help="Select the fixed asset account."

    )


    capacity_form = fields.Selection(

        selection=lambda self: self._get_capacity_selection(),

        string='Capacity',

        help="Select the capacity for the selected fixed asset account."

    )


    @api.model

    def _get_capacity_selection(self):

        # Default empty if no context

        account_id = self.env.context.get('default_account_id')

        if not account_id:

            return []


        asset_records = self.env['account.asset'].search([

            ('account_asset_id', '=', account_id)

        ])

        return [(asset.capacity, asset.capacity) for asset in asset_records if asset.capacity]



Since selection fields are static per field definition, the usual trick is to use a Many2one instead of a Selection. You can then dynamically restrict values with a domain:



from odoo import models, fields, api


class YourModel(models.Model):

    _name = 'your.model'


    account_id = fields.Many2one(

        'account.account',

        string='Fixed Asset Account',

        help="Select the fixed asset account."

    )


    capacity_form_ids = fields.Many2many(

        'account.asset',

        compute='_compute_capacity_form_ids',

        string='Available Capacities'

    )


    capacity_form_id = fields.Many2one(

        'account.asset',

        string='Capacity',

        domain="[('id', 'in', capacity_form_ids)]"

    )


    @api.depends('account_id')

    def _compute_capacity_form_ids(self):

        for rec in self:

            if rec.account_id:

                assets = self.env['account.asset'].search([

                    ('account_asset_id', '=', rec.account_id.id),

                    ('capacity', '!=', False)

                ])

                rec.capacity_form_ids = assets

            else:

                rec.capacity_form_ids = False


Hope it helps.

0
अवतार
खारिज करें
अवतार
Junaid Alam
लेखक Best Answer

Following is the code @Ray Carnes

account_id = fields.Many2one(
'account.account',
string='Fixed Asset Account',
help="Select the fixed asset account."
)
capacity_form = fields.Selection(
selection=[],
string='Capacity',
help="Select the capacity for the selected fixed asset account."
)

@api.onchange('account_id')
def _onchange_account_id(self):
if self.account_id:
# Fetch all capacities related to the selected account
asset_records = self.env['account.asset'].search([
('account_asset_id', '=', self.account_id.id)
])
# Prepare the selection list
capacities = [(asset.capacity, asset.capacity) for asset in asset_records if asset.capacity]
print('Capacities are', capacities)

# Dynamically update the selection options for capacity_form
self._fields['capacity_form'].selection = capacities
self.capacity_form = capacities

# Reset the value of capacity_form if it doesn't match the new options
if self.capacity_form not in dict(capacities):
self.capacity_form = False
else:
# Clear the selection if no account_id is selected
self._fields['capacity_form'].selection = []
self.capacity_form = False
0
अवतार
खारिज करें
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 Replies डेटा देखने का तरीका ऐक्टिविटी
Blank Page After Logged in. Solved
development odoo
अवतार
अवतार
अवतार
2
सित॰ 25
5983
Odoo Server Error after adding depends in manifest.py Solved
development odoo
अवतार
अवतार
अवतार
2
नव॰ 24
5820
Which is better for Odoo development VsCode or PyCharm? Solved
development odoo
अवतार
अवतार
1
सित॰ 23
8137
Add option in action button in tree view and traverse multiple records
development odoo
अवतार
0
अप्रैल 21
5208
Synchronizing POS receipt data between frontend and backend in Odoo 19 Question:
development pos odoo
अवतार
0
मार्च 26
8
कम्यूनिटी
  • ट्यूटोरियल्स
  • दस्तावेज़
  • फ़ोरम
ओपन सोर्स
  • डाउनलोड
  • Github
  • रनबॉट
  • अनुवाद
सेवाएं
  • Odoo.sh Hosting
  • सहायता
  • अपग्रेड
  • कस्टम डेवलपमेंट्स
  • शिक्षा
  • अकाउंटेंट खोजें
  • पार्टनर ढूंढें
  • पार्टनर बनें
हमारे बारे में
  • हमारी कंपनी
  • ब्रांड ऐसेट
  • संपर्क करें
  • नौकरियां
  • इवेंट
  • पॉडकास्ट
  • ब्लॉग
  • ग्राहक
  • लीगल • गोपनीयता
  • सुरक्षा
الْعَرَبيّة 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 Svenska ภาษาไทย Türkçe українська Tiếng Việt

Odoo, बिज़नेस से जुड़े ऐप्लिकेशन का एक कलेक्शन है जो ओपन सोर्स पर आधारित है. इसमें आपकी कंपनी की हर ज़रूरत के लिए ऐप्लिकेशन हैं. जैसे, सीआरएम, ई-कॉमर्स, अकाउंटिंग, इन्वेंट्री, पॉइंट ऑफ़ सेल, प्रोजेक्ट मैनेजमेंट वगैरह.

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