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
    • Approval
    • IoT
    • VoIP
    • Pengetahuan
    • WhatsApp
    Aplikasi pihak ketiga Odoo Studio Platform Odoo Cloud
  • Industri-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
    • Estate Management
    • 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
    • Temui penasihat
    • Layanan Implementasi
    • Referensi Pelanggan
    • Bantuan
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Dapatkan demo
  • Harga
  • Bantuan

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

  • CRM
  • e-Commerce
  • Akuntansi
  • Inventaris
  • PoS
  • Project
  • MRP
All apps
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

How to check the size of a field

Langganan

Dapatkan notifikasi saat terdapat aktivitas pada post ini

Pertanyaan ini telah diberikan tanda
fieldscharactersodooV8
5 Replies
16039 Tampilan
Avatar
Uillino

I know that the tag 'size' sets the maximum size of values stored for a field.

For example, in such way:

 name_of_field =  fields.Char('name of field', size=2)

I could write a maximum of two characters for 'name_of_field': one or two characters are allowed.

How can I prevent to write only one character?


-----------------------------------

This is the right xml file:

<field name="scode" on_change="on_change_length_id(scode)"/> 

and this is the right .py file:

# -*- encoding: utf-8 -*-
from openerp import models, fields
from openerp.osv import osv

class myclass(models.Model):
_name = 'tbl
_description = 'Write into db'

scode= fields.Char('Code', size=3 required=True)

def get_lenght(self, cr, uid, ids, scode, context=None):
if scode and len(scode) != 3:
My_error_Msg = 'Wrong size'
raise osv.except_osv(("Warning!"), (My_error_Msg))
return

else:
return scode


def on_change_length_id(self, cr, uid, ids, scode, context=None):
res = {'value': {'scode': self.get_lenght(cr, uid, ids, scode, context=context)}}
return res

0
Avatar
Buang
Avatar
Rihene
Jawaban Terbai

 Here is the solution:
Python:

from openerp import models, fields

from openerp.osv import osv

class myclass(models.Model):

_name = 'tbl'

_description = 'Insert into db'

scode = fields.Char('Code', size=3, required=True)

def get_lenght(self, cr, uid, ids, scode context=None):

if len(scode) == 3:

return True

else:

My_error_Msg = 'Size uncorrect'

raise osv.except_osv(_("Error!"), _(My_error_Msg))

return False

def on_change_length_id(self, cr, uid, ids, scode, context=None):

res = {'value': {'scode': self.get_lenght(cr, uid, ids, scode, context=context)

}

}

return res

And your XML:

<field name="scode" on_change="on_change_length_id(scode)"/>

Regards.

1
Avatar
Buang
Uillino
Penulis

I get this error: 2015-08-10 13:29:10,406 3867 ERROR MyModule werkzeug: Error on request: Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/Werkzeug-0.9-py2.7.egg/werkzeug/serving.py", line 174, in run_wsgi execute(self.server.app) File "/usr/lib/python2.7/site-packages/Werkzeug-0.9-py2.7.egg/werkzeug/serving.py", line 162, in execute application_iter = app(environ, start_response) File "/home/Odoo/openerp/openerp/service/server.py", line 281, in app return self.app(e, s) File "/home/Odoo/openerp/openerp/service/wsgi_server.py", line 216, in application return application_unproxied(environ, start_response) File "/home/Odoo/openerp/openerp/service/wsgi_server.py", line 202, in application_unproxied result = handler(environ, start_response) File "/home/Odoo/openerp/openerp/http.py", line 1280, in __call__ return self.dispatch(environ, start_response) File "/home/Odoo/openerp/openerp/http.py", line 1254, in __call__ return self.app(environ, start_wrapped) File "/usr/lib/python2.7/site-packages/Werkzeug-0.9-py2.7.egg/werkzeug/wsgi.py", line 574, in __call__ return self.app(environ, start_response) File "/home/Odoo/openerp/openerp/http.py", line 1412, in dispatch ir_http = request.registry['ir.http'] File "/home/Odoo/openerp/openerp/http.py", line 339, in registry return openerp.modules.registry.RegistryManager.get(self.db) if self.db else None File "/home/Odoo/openerp/openerp/modules/registry.py", line 335, in get update_module) File "/home/Odoo/openerp/openerp/modules/registry.py", line 366, in new openerp.modules.load_modules(registry._db, force_demo, status, update_module) File "/home/Odoo/openerp/openerp/modules/loading.py", line 351, in load_modules force, status, report, loaded_modules, update_module) File "/home/Odoo/openerp/openerp/modules/loading.py", line 255, in load_marked_modules loaded, processed = load_module_graph(cr, graph, progressdict, report=report, skip_modules=loaded_modules, perform_checks=perform_checks) File "/home/Odoo/openerp/openerp/modules/loading.py", line 176, in load_module_graph _load_data(cr, module_name, idref, mode, kind='data') File "/home/Odoo/openerp/openerp/modules/loading.py", line 118, in _load_data tools.convert_file(cr, module_name, filename, idref, mode, noupdate, kind, report) File "/home/Odoo/openerp/openerp/tools/convert.py", line 901, in convert_file convert_xml_import(cr, module, fp, idref, mode, noupdate, report) File "/home/Odoo/openerp/openerp/tools/convert.py", line 974, in convert_xml_import doc = etree.parse(xmlfile) File "lxml.etree.pyx", line 3197, in lxml.etree.parse (src/lxml/lxml.etree.c:64816) File "parser.pxi", line 1593, in lxml.etree._parseDocument (src/lxml/lxml.etree.c:92943) File "parser.pxi", line 1624, in lxml.etree._parseFilelikeDocument (src/lxml/lxml.etree.c:93282) File "parser.pxi", line 1506, in lxml.etree._parseDocFromFilelike (src/lxml/lxml.etree.c:92145) File "parser.pxi", line 1069, in lxml.etree._BaseParser._parseDocFromFilelike (src/lxml/lxml.etree.c:89185) File "parser.pxi", line 577, in lxml.etree._ParserContext._handleParseResultDoc (src/lxml/lxml.etree.c:84385) File "parser.pxi", line 676, in lxml.etree._handleParseResult (src/lxml/lxml.etree.c:85488) File "parser.pxi", line 616, in lxml.etree._raiseParseError (src/lxml/lxml.etree.c:84811) XMLSyntaxError: attributes construct error, line 11, column 17

Serpent Consulting Services Pvt. Ltd.

Share the XML file please.

Uillino
Penulis

There were few errors in your code. I've tryed in such way: from openerp.osv import osv scode = fields.Char('Code', size=3, required=True) def get_lenght(self, cr, uid, ids, scode, context=None): if len(scode) != 3: My_error_Msg = 'Size uncorrect' raise osv.except_osv(_("Error!"), _(My_error_Msg)) return False else: return True def on_change_length_id(self, cr, uid, ids, scode, context=None): res = {'value': {'scode': self.get_lenght(cr, uid, ids, scode, context=context) } } return res but I get this error: Traceback (most recent call last): File "/home/Odoo/openerp/openerp/http.py", line 530, in _handle_exception return super(JsonRequest, self)._handle_exception(exception) File "/home/Odoo/openerp/openerp/http.py", line 567, in dispatch result = self._call_function(**self.params) File "/home/Odoo/openerp/openerp/http.py", line 303, in _call_function return checked_call(self.db, *args, **kwargs) File "/home/Odoo/openerp/openerp/service/model.py", line 113, in wrapper return f(dbname, *args, **kwargs) File "/home/Odoo/openerp/openerp/http.py", line 300, in checked_call return self.endpoint(*a, **kw) File "/home/Odoo/openerp/openerp/http.py", line 796, in __call__ return self.method(*args, **kw) File "/home/Odoo/openerp/openerp/http.py", line 396, in response_wrap response = f(*args, **kw) File "/home/Odoo/openerp/openerp/addons/web/controllers/main.py", line 949, in call_kw return self._call_kw(model, method, args, kwargs) File "/home/Odoo/openerp/openerp/addons/web/controllers/main.py", line 941, in _call_kw return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs) File "/home/Odoo/openerp/openerp/api.py", line 241, in wrapper return old_api(self, *args, **kwargs) File "/home/Odoo/openerp/openerp/api.py", line 363, in old_api result = method(recs, *args, **kwargs) File "/home/Odoo/openerp/openerp/models.py", line 5786, in onchange record._onchange_eval(name, field_onchange[name], result) File "/home/Odoo/openerp/openerp/models.py", line 5720, in _onchange_eval method_res = getattr(self._model, method)(*args) File "/home/Odoo/openerp/openerp/api.py", line 241, in wrapper return old_api(self, *args, **kwargs) File "/home/Odoo/openerp/openerp/addons/mymodule/macro_sotto.py", line 32, in on_change_length_id res = {'value': {'scode': self.get_lenght(cr, uid, ids, scode_macro_attivita, context=context) File "/home/Odoo/openerp/openerp/api.py", line 241, in wrapper return old_api(self, *args, **kwargs) File "/home/Odoo/openerp/openerp/addons/mymodule/macro_sotto.py", line 23, in get_lenght if len(scode) != '3': TypeError: object of type 'bool' has no len()

Rihene

If it works for you friend CHECK it ;)

Uillino
Penulis

Thank you for your help, but I get the same error: TypeError: object of type 'bool' has no len()

Rihene

Try this one please

Uillino
Penulis

The error is the same: TypeError: object of type 'bool' has no len(). I don't understand why!

Uillino
Penulis

I've solved! The problem is that odoo set scode to True by default. So I need to put an 'if scode', Now I'm going to post the right code. Thank you for your help.

Avatar
Uillino
Penulis Jawaban Terbai

I get this error:

TypeError: object of type 'bool' has no len() 

using this code:

from openerp import models, fields
from openerp.osv import osv

class myclass(models.Model):
_name = 'tbl'
_description = 'Insert into db'

scode = fields.Char('Code', size=3, required=True)

def get_lenght(self, cr, uid, ids, scode context=None):
if len(scode == 3:
return True
else:
My_error_Msg = 'Size uncorrect'
raise osv.except_osv(_("Error!"), _(My_error_Msg))
return False

def on_change_length_id(self, cr, uid, ids, scode context=None):
res = {'value': {'scode': self.get_lenght(cr, uid, ids, scode context=context)
}
}
return res

and this xml file:

<field name="scode" on_change="on_change_length_id(scode)"/> 

Any idea?

Thanks!

0
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
display field by selected model.
fields odooV8
Avatar
0
Mar 16
4149
Retrieving the keys from the selection field
fields odooV8
Avatar
0
Des 15
5373
What is use of oldname? Diselesaikan
fields openerp7 odooV8
Avatar
Avatar
Avatar
2
Agu 22
15343
How to let a field stay editable even after save or confirm
fields editable odooV8
Avatar
Avatar
1
Apr 19
5293
How to have more than one many2one field for a method?
fields many2one odooV8
Avatar
Avatar
1
Jun 18
4758
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
  • Tugas
  • 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 ภาษาไทย 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