আপনি সম্ভবত আন্তর্জাতিকভাবে স্ট্যান্ডার্ডযুক্ত ফর্ম্যাট E.164 দেখতে পাচ্ছেন , উদাহরণস্বরূপ টোলিওর দ্বারা প্রস্তাবিত (যার কাছে একটি পরিষেবা এবং এসইএস অনুরোধের মাধ্যমে এসএমএস বা ফোন কল প্রেরণের জন্য একটি এপিআই রয়েছে)।
ফোন নম্বর সংরক্ষণের এটি সর্বজনীন উপায় হতে পারে, বিশেষত যদি আপনার আন্তর্জাতিক নম্বর থাকে তবে।
1. ফোননম্বারফিল্ড দ্বারা ফোন
আপনি phonenumber_field
গ্রন্থাগার ব্যবহার করতে পারেন । এটি গুগলের লাইফফোনেম্বার লাইব্রেরির বন্দর, যা অ্যান্ড্রয়েডের ফোন নম্বর পরিচালনা করার ক্ষমতা দেয়
https://github.com/stefanfoulis/django-phonenumber-field
মডেল:
from phonenumber_field.modelfields import PhoneNumberField
class Client(models.Model, Importable):
phone = PhoneNumberField(null=False, blank=False, unique=True)
আকারে:
from phonenumber_field.formfields import PhoneNumberField
class ClientForm(forms.Form):
phone = PhoneNumberField()
অবজেক্ট ক্ষেত্র থেকে স্ট্রিং হিসাবে ফোন পান:
client.phone.as_e164
ফোন স্ট্রিংকে সাধারণ করুন (পরীক্ষা এবং অন্যান্য কর্মীদের জন্য):
from phonenumber_field.phonenumber import PhoneNumber
phone = PhoneNumber.from_string(phone_number=raw_phone, region='RU').as_e164
২. রিজেক্সের মাধ্যমে ফোন
আপনার মডেলের জন্য একটি নোট: E.164 সংখ্যার 15 এর সর্বোচ্চ অক্ষরের দৈর্ঘ্য রয়েছে।
যাচাই করার জন্য, আপনি কিছু বিন্যাসের মিশ্রণ নিয়োগ করতে পারেন এবং তারপরে যাচাই করতে অবিলম্বে নম্বরটির সাথে যোগাযোগের চেষ্টা করতে পারেন।
আমার বিশ্বাস আমি আমার জ্যাঙ্গো প্রকল্পে নিম্নলিখিতগুলির মতো কিছু ব্যবহার করেছি:
class ReceiverForm(forms.ModelForm):
phone_number = forms.RegexField(regex=r'^\+?1?\d{9,15}$',
error_message = ("Phone number must be entered in the format: '+999999999'. Up to 15 digits allowed."))
সম্পাদনা
দেখা যাচ্ছে যে এই পোস্টটি কিছু লোকের পক্ষে কার্যকর হয়েছে এবং নীচের মন্তব্যটিকে আরও পূর্ণ উত্তর দিয়ে একীভূত করা এটি উপযুক্ত বলে মনে হয়। অনুযায়ী jpotter6 , আপনি পাশাপাশি আপনার মডেলের উপর নিচের মত কিছু করতে পারেন:
models.py:
from django.core.validators import RegexValidator
class PhoneModel(models.Model):
...
phone_regex = RegexValidator(regex=r'^\+?1?\d{9,15}$', message="Phone number must be entered in the format: '+999999999'. Up to 15 digits allowed.")
phone_number = models.CharField(validators=[phone_regex], max_length=17, blank=True) # validators should be a list