I want to restrict the user to entering only 10 numbers in the phone field. Example: The user enters the number 0553448950 only and cannot add more, noting that this is converted to the international format +966 55 344 8950. What I care about is only preventing the user from adding more than 10 numbers.
Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:
- إدارة علاقات العملاء
- e-Commerce
- المحاسبة
- المخزون
- PoS
- Project
- MRP
لقد تم الإبلاغ عن هذا السؤال
Hi,
Try the following code.
class ResPartner(models.Model):
_inherit = 'res.partner'
@api.constrains('phone')
def _check_phone_length(self):
for rec in self:
if rec.phone:
digits = re.sub(r'\D', '', rec.phone) # Remove non-digit characters
if len(digits) != 10:
raise ValidationError("Phone number must contain exactly 10 digits.")
- Removes all non-digit characters (so +966 55 344 8950 becomes 966553448950)
- Checks if the last 10 digits (i.e., local number) are exactly 10 digits long
- If not, raises a clear ValidationError
Hope it helps
هل أعجبك النقاش؟ لا تكن مستمعاً فقط. شاركنا!
أنشئ حساباً اليوم لتستمتع بالخصائص الحصرية، وتفاعل مع مجتمعنا الرائع!
تسجيلالمنشورات ذات الصلة | الردود | أدوات العرض | النشاط | |
---|---|---|---|---|
|
1
أغسطس 25
|
129 | ||
Change position chatter
تم الحل
|
|
1
أغسطس 25
|
290 | |
|
4
يوليو 25
|
1627 | ||
|
2
يوليو 25
|
934 | ||
|
1
يوليو 25
|
2043 |
We don't recommend this:
- the number of digits for a valid phone number varies by country
- sometimes it is useful to enter the extension
You would need to write code to do this, either via a module or via an Automation Rule that counts the characters and blocks the User from saving