با سلام خدمت تمام دوستان عزیز، امیدوارم حال دلتون خوب باشه. در این رشته بلاگ پست ها قصد داریم با پیاده سازی و سفارشی کردن:
بیاییم کاربرمون رو ثبت نام و اعتبار سنجی کنیم.
در این قسمت میاییم مدل کاربر رو سفارشی میکنیم.
در شروع کار یک پروژه جنگویی ایجاد و پس از آن یک app به نام accounts میسازیم(سعی میکنم توضیحات رو با موارد بدیهی که هممون بلد هستیم شلوغ نکنم...!).
خب بریم مدل سفارشی خودمون رو بسازیم:

خب همینطور که در تصویر فوق دارین مشاهده میکنین ما اومدیم از مدل AbstracUser ارث بری کردیم.
داخل پرانتز یک نکته خیلی مهم رو درباره دو مدل AbstracUser و AbstracBaseUser خاطرنشان کنم:
خب در ادامه اومدیم username رو None قردادیم چون داخل این پروژه بهش نیازی نداریم.
در ادامه اومدیم یک فیلد برای شماره تلفن کاربر درنظر گرفتیم( شما حتی میتونین از پکیج django_phone_number_field استفاده کنین(
و بعد دوتا فیلد برای ذخیره OTP code و زمان ساخت اون در نظر گرفتیم(در این مثال برای دوری از هرگونه پیچیدگی اومدیم OTP code رو داخل مدل کاربر ذخیره کردیم اما در پروژه واقعی بهتره یک مدل جدا براش در نظر بگیریم.)
در نهایت شما میتونین سایر فیلد های موردنظر خودتون رو(مانند نام نام خانوادگی ایمیل و...) به مدل مذکور اضافه کنید.
همینطور که مشاهده میکنین objects رو None قرار دادیم تا در قسمت بعد CustomManager رو پیاده سازی کنیم.
USERNAME_FIELD مشخص میکنه کاربر رو قراره با چه فیلدی اعتبارسنجی کنیم. به صورت پیش فرض جنگو فیلد username رو براش درنظر میگرفت، که در اینجا ما اینو تغییرش دادیم و از این به بعد قراره کاربر رو با شماره تلفن اعتبار سنجی کنیم!
REQUIRED_FIELDS لیستی از فیلد هارو دریافت میکنه که ما در این property مشخث میکنیم اگر کاربر اومد کامند python manage.py createsuperuser رو وارد کرد چه فیلد هایی رو به عنوان فیلد های اجباری از کاربر درخواست کنیم(فقط و فقط کاربردش همینه)
با property بک اند ((backend مشخص میکنیم که AuthenticationBackend ما قراره چی باشه( در پارت های بعدی این رشته بلاگ پست ها بهش میپردازیم)
در نهایت مدل کاربر سفارشی خودمون رو (AUTH_USER_MODEL) به جنگو معرفی میکنیم.
خب در این مقاله مدل User سفارشی خودمون رو پیاده سازی کردیم.
در بلاگ پست بعدی ساخت CustomManager رو برای مدل user سفارشی خودمون برسی میکنیم.
شماهم تمام این موارد به علاوه تغییرات مورد نظر خودتون رو پیاده کنین تا بریم سراغ پیاده سازی CustomManager.
امیدوارم این مقاله مفید واقع شده باشه؛ اگر سوال یا انتقادی داشتین در قسمت نظرات مطرحش کنین بنده تمام تلاشمو میکنم در اسرع وقت به سوالات شما عزیزان پاسخ بدم.
اگر فکر می کنید که ما چیزی را در این مقاله جا انداخته ایم و یا در مورد پست های بعدی ایده و یا نظری دارید، خوشحال می شویم که این مورد را با ما در میان بگذارید. تنها کافیست روی دکمه زیر کلیک کنید و پیشنهاد خود را ارسال کنید.
خیلی عالی، ممنون بابت otp خیلی دنبالش میگشتم.
ارادتمندم،
خوشحالم که مفید واقع شده (:
علی
13 Tir 1403, 23:01