Skip ke Konten
Odoo Menu
  • Login
  • Uji coba gratis
  • Aplikasi
    Keuangan
    • Akuntansi
    • Faktur
    • Pengeluaran
    • Spreadsheet (BI)
    • Dokumen
    • Tanda Tangan
    Sales
    • CRM
    • Sales
    • POS Toko
    • POS Restoran
    • Langganan
    • Rental
    Website
    • Website Builder
    • eCommerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Rantai Pasokan
    • Inventaris
    • Manufaktur
    • PLM
    • Purchase
    • Maintenance
    • Kualitas
    Sumber Daya Manusia
    • Karyawan
    • Rekrutmen
    • Cuti
    • Appraisal
    • Referensi
    • Armada
    Marketing
    • Social Marketing
    • Email Marketing
    • SMS Marketing
    • Acara
    • Otomatisasi Marketing
    • Survei
    Layanan
    • Project
    • Timesheet
    • Layanan Lapangan
    • Meja Bantuan
    • Planning
    • Appointment
    Produktivitas
    • Discuss
    • Kecerdasan Buatan
    • IoT
    • VoIP
    • Pengetahuan
    • WhatsApp
    Aplikasi pihak ketiga Odoo Studio Platform Odoo Cloud
  • Industri
    Retail
    • Toko Buku
    • Toko Baju
    • Toko Furnitur
    • Toko Kelontong
    • Toko Hardware
    • Toko Mainan
    Makanan & Hospitality
    • Bar dan Pub
    • Restoran
    • Fast Food
    • Rumah Tamu
    • Distributor Minuman
    • Hotel
    Real Estate
    • Agensi Real Estate
    • Firma Arsitektur
    • Konstruksi
    • Manajemen Properti
    • Perkebunan
    • Asosiasi Pemilik Properti
    Konsultansi
    • Firma Akuntansi
    • Mitra Odoo
    • Agensi Marketing
    • Firma huku
    • Talent Acquisition
    • Audit & Sertifikasi
    Manufaktur
    • Tekstil
    • Logam
    • Perabotan
    • Makanan
    • Brewery
    • Corporate Gift
    Kesehatan & Fitness
    • Sports Club
    • Toko Kacamata
    • Fitness Center
    • Wellness Practitioners
    • Farmasi
    • Salon Rambut
    Perdagangan
    • Handyman
    • IT Hardware & Support
    • Sistem-Sistem Energi Surya
    • Pembuat Sepatu
    • Cleaning Service
    • Layanan HVAC
    Lainnya
    • Organisasi Nirlaba
    • Agen Lingkungan
    • Rental Billboard
    • Fotografi
    • Penyewaan Sepeda
    • Reseller Software
    Browse semua Industri
  • Komunitas
    Belajar
    • Tutorial-tutorial
    • Dokumentasi
    • Sertifikasi
    • Pelatihan
    • Blog
    • Podcast
    Empower Education
    • Program Edukasi
    • Game Bisnis 'Scale Up!'
    • Kunjungi Odoo
    Dapatkan Softwarenya
    • Download
    • Bandingkan Edisi
    • Daftar Rilis
    Kolaborasi
    • Github
    • Forum
    • Acara
    • Terjemahan
    • Menjadi Partner
    • Layanan untuk Partner
    • Daftarkan perusahaan Akuntansi Anda.
    Dapatkan Layanan
    • Temukan Mitra
    • Temukan Akuntan
    • Konsultasi
    • Layanan Implementasi
    • Referensi Pelanggan
    • Bantuan
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Dapatkan demo
  • Harga
  • Bantuan
Anda harus terdaftar untuk dapat berinteraksi di komunitas.
Semua Post Orang Lencana-Lencana
Label (Lihat semua)
odoo accounting v14 pos v15
Mengenai forum ini
Anda harus terdaftar untuk dapat berinteraksi di komunitas.
Semua Post Orang Lencana-Lencana
Label (Lihat semua)
odoo accounting v14 pos v15
Mengenai forum ini
Help

Call function in domain odoo16

Langganan

Dapatkan notifikasi saat terdapat aktivitas pada post ini

Pertanyaan ini telah diberikan tanda
odooodoo16features
2 Replies
4148 Tampilan
Avatar
abc Electronics, Asmaa

I need to call function in domain odoo 16 
I know that calling function in domain depricated in odoo16
but how can i solve this problem?

I tried to use compute field but it does't work


@api.onchange('deliver_id.shipping_method')
def _on_change_shipping_method(self):
if self.deliver_id.Shipping_method:
cities=self.env['shipping.meth']['line_ids']['city_id'].search_read()
city_list={}
for rec in cities:
cit=self.deliver_id.Shipping_method.line_ids.city_id
for c in cit:
if rec['id'] == c.id:
city_list[c.id]=c.id
return city_list
@api.depends("deliver_id.Shipping_method")
def _compute_allowed_value_ids(self):
for record in self:
x= _on_change_shipping_method()
x=list(x.values())
record.allowed_value_ids=x
allowed_value_ids = fields.Many2one(
"city.city",
_compute="_compute_allowed_value_ids",required=False
)
city = fields.Many2one('city.city',string='City',domain="[('id', 'in', allowed_value_ids)]",)


0
Avatar
Buang
Avatar
Jainesh Shah(Aktiv Software)
Jawaban Terbai

Hello Asmaa,

I've checked the issue and here's what you can fix,

1) You need to remove '_' at beginning of compute parameter and write 'compute' instead as '_compute' is not a valid parameter.

2) The arguments used for onchange() decorator must be simple field names. If dotted names are used then it will be ignored by the decorator. Your onchange() decorator: ('deliver_id.shipping_method') will be ignored.

3) If your onchange method (in your case x) returns more than one value It throws an error, you cannot use them to write in Many2one as you can write only one value at a time in Many2one. 

So if your field 'allowed_value_ids' is not used in the view or anywhere else other than in the domain of field 'city', you can make the field type 
of field:'allowed_value_ids' as Many2many instead of Many2one.

Ex:- Suppose you have 3 cities, compute on your field 'allowed_value_ids' returns 2 cities, so it will write those two values in field 'allowed_value_ids' if it is a Many2many but not in Many2one. Now field 'city' will filter only those cities which are there in the field 'allowed_value_ids'. 

Hope this will help you.

Thanks & Regards,
Email: odoo@aktivsoftware.com
Skype: kalpeshmaheshwari

0
Avatar
Buang
abc Electronics, Asmaa
Penulis

allowed_value_ids field is Many2one not Many2many
How can i solve it?

Avatar
Cybrosys Techno Solutions Pvt.Ltd
Jawaban Terbai

Hi,

You can call the domain using a external module from oca, web_domain_field add this module in the depends in manifest file

https://odoo-community.org/shop/web-domain-field-4368#attr=22677

Try to update the code like this , import json

@api.depends("deliver_id.Shipping_method")
def compute_allowed_value_ids(self):
    for record in self:
        val = self._on_change_shipping_method()
        x = list(val.values())
        record.allowed_value_ids = json.dumps(
                [('id', 'in',x)]
            )

Update the xml code like follows

<field name="city" domain="allowed_value_ids"/>


<field name="allowed_value_ids" invisible="1"/>


Regards

1
Avatar
Buang
Menikmati diskusi? Jangan hanya membaca, ikuti!

Buat akun sekarang untuk menikmati fitur eksklufi dan agar terlibat dengan komunitas kami!

Daftar
Post Terkait Replies Tampilan Aktivitas
GST Applicability on Free Samples and Free Supplies | How to achieve the same in Odoo 16.0
odoo odoo16features
Avatar
Avatar
1
Apr 26
4398
haw to link purchase order with its payments?
odoo odoo16features
Avatar
Avatar
1
Apr 25
2980
Odoo App Diselesaikan
odoo odoo16features
Avatar
Avatar
1
Nov 23
3746
Work Order Timer Losing Sync - Odoo.sh 16
odoo odoo16features
Avatar
0
Mei 24
3353
Data not save when refresh page odoo 16
odoo odoo16features
Avatar
0
Sep 23
3895
Komunitas
  • Tutorial-tutorial
  • Dokumentasi
  • Forum
Open Source
  • Download
  • Github
  • Runbot
  • Terjemahan
Layanan
  • Odoo.sh Hosting
  • Bantuan
  • Peningkatan
  • Custom Development
  • Pendidikan
  • Temukan Akuntan
  • Temukan Mitra
  • Menjadi Partner
Tentang Kami
  • Perusahaan kami
  • Aset Merek
  • Hubungi kami
  • Karir
  • Acara
  • Podcast
  • Blog
  • Pelanggan
  • Hukum • Privasi
  • Keamanan
الْعَرَبيّة 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 adalah rangkaian aplikasi bisnis open source yang mencakup semua kebutuhan perusahaan Anda: CRM, eCommerce, akuntansi, inventaris, point of sale, manajemen project, dan seterusnya.

Mudah digunakan dan terintegrasi penuh pada saat yang sama adalah value proposition unik 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