Skip to Content
Odoo मेन्यू
  • Sign in
  • मुफ़्त में आज़माएं
  • ऐप्लिकेशन
    फ़ाइनेंस
    • अकाउंटिंग
    • इनवॉइसिंग
    • एक्सपेंस
    • स्प्रेडशीट (बीआई)
    • डॉक्यूमेंट्स
    • साइन
    सेल्स
    • सीआरएम
    • सेल्स
    • पीओएस शॉप
    • पीओएस रेस्टोरेंट
    • सब्सक्रिप्शन
    • रेंटल
    वेबसाइट
    • वेबसाइट बिल्डर
    • ई-कॉमर्स
    • ब्लॉग
    • फ़ोरम
    • लाइव चैट
    • ई-लर्निंग
    सप्लाई चेन
    • इन्वेंट्री
    • मैन्युफ़ैक्चरिंग
    • पीएलएम
    • परचेज़
    • मेंटेनेंस
    • क्वालिटी
    मानव संसाधन
    • कर्मचारी
    • रिक्रूटमेंट
    • टाइम ऑफ़
    • अप्रेज़ल
    • रेफ़रल
    • फ़्लीट
    मार्केटिंग
    • सोशल मार्केटिंग
    • ईमेल मार्केटिंग
    • एसएमएस मार्केटिंग
    • इवेंट
    • मार्केटिंग ऑटोमेशन
    • सर्वे
    सेवाएं
    • प्रोजेक्ट
    • टाइमशीट
    • फ़ील्ड सर्विस
    • हेल्पडेस्क
    • प्लानिंग
    • अपॉइंटमेंट
    प्रॉडक्टिविटी
    • डिस्कस
    • अप्रूवल
    • आईओटी
    • वीओआईपी
    • नॉलेज
    • WhatsApp
    तीसरे पक्ष के ऐप्लिकेशन Odoo स्टूडियो Odoo क्लाउड प्लेटफ़ॉर्म
  • इंडस्ट्री
    रीटेल
    • बुक स्टोर
    • क्लोदिंग स्टोर
    • फ़र्नीचर स्टोर
    • ग्रॉसरी स्टोर
    • हार्डवेयर स्टोर
    • टॉय स्टोर
    Food & Hospitality
    • बार और पब
    • रेस्टोरेंट
    • फ़ास्ट फ़ूड
    • Guest House
    • बेवरिज डिस्ट्रीब्यूटर
    • होटल
    रियल एस्टेट
    • Real Estate Agency
    • आर्किटेक्चर फ़र्म
    • कंसट्रक्शन
    • एस्टेट मैनेजमेंट
    • गार्ड्निंग
    • प्रॉपर्टी ओनर असोसिएशन
    कंसल्टिंग
    • अकाउंटिंग फ़र्म
    • Odoo पार्टनर
    • मार्केटिंग एजेंसी
    • लॉ फ़र्म
    • टैलेंट ऐक्विज़िशन
    • ऑडिट & सर्टिफ़िकेशन
    मैन्युफ़ैक्चरिंग
    • टेक्सटाइल
    • Metal
    • फ़र्नीचर
    • फ़ूड
    • Brewery
    • कॉर्पोरेट गिफ़्ट
    हेल्थ & फिटनेस
    • स्पोर्ट्स क्लब
    • आईवियर स्टोर
    • फिटनेस सेंटर
    • वेलनेस प्रैक्टिशनर
    • फॉर्मेसी
    • हेयर सैलून
    Trades
    • Handyman
    • आईटी हॉर्डवेयर और सपोर्ट
    • Solar Energy Systems
    • Shoe Maker
    • Cleaning Services
    • HVAC Services
    अन्य
    • Nonprofit Organization
    • एन्वायरमेंटल एजेंसी
    • बिलबोर्ड रेंटल
    • फ़ोटोग्राफी
    • बाइक लीजिंग
    • सॉफ़्टवेयर रीसेलर
    Browse all Industries
  • कम्यूनिटी
    सीखें
    • ट्यूटोरियल्स
    • दस्तावेज़
    • सर्टिफ़िकेशन
    • ट्रेनिंग
    • ब्लॉग
    • पॉडकास्ट
    शिक्षा को बढ़ावा दें
    • एजुकेशन प्रोग्राम
    • स्केल अप! बिजनेस गेम
    • 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:

  • सीआरएम
  • e-Commerce
  • लेखांकन
  • इन्वेंटरी
  • PoS
  • प्रोजेक्ट
  • MRP
All apps
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
Help

How to check the size of a field

Subscribe

Get notified when there's activity on this post

This question has been flagged
fieldscharactersodooV8
5 Replies
15989 Views
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
Discard
Avatar
Rihene
Best Answer

 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
Discard
Uillino
Author

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
Author

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
Author

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
Author

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

Uillino
Author

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
Author Best Answer

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
Discard
Enjoying the discussion? Don't just read, join in!

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

Sign up
Related Posts Replies Views Activity
display field by selected model.
fields odooV8
Avatar
0
मार्च 16
4119
Retrieving the keys from the selection field
fields odooV8
Avatar
0
दिस॰ 15
5337
What is use of oldname? Solved
fields openerp7 odooV8
Avatar
Avatar
Avatar
2
अग॰ 22
15277
How to let a field stay editable even after save or confirm
fields editable odooV8
Avatar
Avatar
1
अप्रैल 19
5261
How to have more than one many2one field for a method?
fields many2one odooV8
Avatar
Avatar
1
जून 18
4719
कम्यूनिटी
  • ट्यूटोरियल्स
  • दस्तावेज़
  • फ़ोरम
ओपन सोर्स
  • डाउनलोड
  • 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 ภาษาไทย 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