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:
- CRM
- e-Commerce
- Kế toán
- Tồn kho
- PoS
- Project
- MRP
Câu hỏi này đã bị gắn cờ
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
Bạn có hứng thú với cuộc thảo luận không? Đừng chỉ đọc, hãy tham gia nhé!
Tạo tài khoản ngay hôm nay để tận hưởng các tính năng độc đáo và tham gia cộng đồng tuyệt vời của chúng tôi!
Đăng kýBài viết liên quan | Trả lời | Lượt xem | Hoạt động | |
---|---|---|---|---|
|
1
thg 8 25
|
514 | ||
Change position chatter
Đã xử lý
|
|
1
thg 8 25
|
466 | |
|
4
thg 7 25
|
1785 | ||
|
2
thg 7 25
|
1047 | ||
|
1
thg 7 25
|
2179 |
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