جَلال انسانی وطندوست و میهنپرست است.
او که از کار کردن با تقویم میلادی و تبدیل دائم آن به تقویم شمسی خسته شده بود، از شما برای رفع این مشکل درخواست کمک کرده است. از آنجایی که شما نیز انسانی وطندوست و میهنپرست هستید، با کمال میل به کمک او میشتابید و به جَلال کمک میکنید تا با تقویم جَلالی کار کند.
در این پروژه شما باید قابلیت اضافهکردن تاریخ فارسی به مدل جنگو را با استفاده از کتابخانهی django_jalali
پیادهسازی کنید.
پروژه اولیه را از این لینک دانلود کنید. ساختار فایلهای این پروژه به صورت زیر است:
CustomUser
🔗اپلیکیشن Users
فقط شامل یک مدل به نام CustomUser
است که این مدل شامل فیلدهای زیر میباشد:
username
: این فیلد از نوع CharField
و حداکثر طول آن ۲۵۶ میباشد.full_name
: این فیلد از نوع CharField
و حداکثر طول آن ۲۵۶ میباشد.gender
: این فیلد از نوع CharField
میباشد. ویژگی gender
باید از بین جنسیتهای Male
و Female
انتخاب شود و در داخل پایگاه داده به جای Male
حرف M
ذخیره و به جای کلمهی Female
حرف F
ذخیره شود.national_code
: این فیلد از نوع CharField
و حداکثر طول آن ۱۰ میباشد.birthday_date
: این فیلد از نوع تاریخ (date
) شمسی میباشد.ceremony_datetime
: این فیلد از نوع تاریخ و ساعت (datetime
) شمسی میباشد.country
: این فیلد از نوع CharField
است و مقدار آن، برای همهی شئها برابر رشتهی Iran
است.تابع get_first_and_last_name
: این تابع، first_name
و last_name
کاربر را از روی فیلد full_name
بدست آورده و در قابل یک دیکشنری بازمیگرداند. تضمین میشود که فیلد full_name
فقط شامل یک فاصله (آن هم بین first_name
و last_name
) میباشد.
دیکشنری بازگرداندهشده از این تابع، باید بهصورت زیر باشد:
برای مثال، برای کاربری با full_name='Saeid Zamani'
، خروجی تابع بهصورت زیر خواهدبود:
تابع get_age
: این تابع، سن کاربر را از روی فیلد birthday_date
محاسبه کرده و بازمیگرداند. دقت کنید که این تابع باید جزء صحیح سن را بازگرداند. مثلا اگر شخصی ۵ سال و ۳ ماه سن داشت، باید عدد ۵ را بازگرداند یا اگر شخصی ۱۰ سال و ۱۱ ماه داشت باید عدد ۱۰ را بازگرداند.
is_birthday
: این تابع مشخص میکند که آیا امروز، روز تولد کاربر مورد نظر هست یا خیر. در صورتی که امروز، روز تولد کاربر بود، مقدار True
و در غیر اینصورت، مقدار False
را بازمیگرداند.CustomUserForm
🔗تمامی فیلدهای مدل CustomUser
باید داخل کلاس CustomUserForm
در فایل forms.py
وجود داشته باشند.
اعتبارسنجیها:
national_code
باید دقیقا شامل ۱۰ کاراکتر باشد.full_name
باید حتماً شامل first_name
و last_name
باشد و هر دوی این مقادیر باید عنوان باشند. عنوان بودن یعنی با یک حرف بزرگ انگلیسی شروع شده و بقیهی حروف هر کلمه کوچک باشند.مدل CustomUser
موجود در models.py
باید در پنل ادمین ثبت شده و قابل مشاهده باشد.
CustomUserAdmin
🔗CustomUser
ها، مقادیر زیر نمایش داده شود (ترتیب مهم نیست):username
first_name
last_name
gender
national_code
birthday_date
توجه: فیلدهای first_name
و last_name
از روی فیلد full_name
ایجاد میشوند.
قابلیت جستجو بر اساس username
و full_name
وجود داشته باشد.
لیست CustomUser
ها براساس ceremony_datetime
، به صورت صعودی مرتب شده باشد.
در فایلهای اولیهای که دانلود کردید یکسری داده اولیه به عنوان نمونه قرار داده شده است. میتوانید قبل از فرستادن سوال در سایت، این تستها را ببینید تا با نحوه داوری ما آشنا شوید و از پاسخ خود اطمینان حاصل نمایید.
تستها را میتوانید با دستور زیر اجرا کنید:
Users/models.py
، Users/forms.py
و Users/admin.py
را دارید و تمامی تغییرات دیگر شما در فایلهای پروژه نادیده گرفته خواهند شد.testsample.py
با روش تست کردن مدلها، فرمها و ادمینها آشنا شوید.یک فایل ZIP حاوی همهی فایلهای پروژه، آپلود کنید. نام فایل ZIP اهمیتی ندارد.