آموزش¶
یک فروشگاه که لایه به لایه ساخته میشود: مشتریها در یکی از دو شعبه سفارش ثبت میکنند، هر شعبه یک مدیر دارد، و یک حسابدار همهی سفارشها را با قیمتشان میخواند. همهی کدهای این صفحهها مستقیم از پروژهی نمونه خوانده میشوند، که تستهایش همراه تستهای خود کتابخانه اجرا میشوند - پس آنچه اینجا میخوانید همان چیزی است که اجرا میشود.
فروشگاه چه چیزی لازم دارد¶
| چه کسی | اجازه دارد |
|---|---|
| مدیر یک شعبه | سفارشهای شعبهی خودش را بخواند، ویرایش و تأیید کند - هیچوقت قیمت را نه |
| حسابدار | همهی سفارشها را با قیمتشان بخواند، و چیزی را تغییر ندهد |
| یک مشتری | سفارشهای خودش را بخواند، و سفارش تازه ثبت کند - هیچوقت قیمتگذاری یا تأیید نکند |
| هیچ کس | سفارشی را بعد از تحویل ویرایش کند |
قدمها¶
| قدم | چه چیزی اضافه میکند | |
|---|---|---|
| ۱ | اجرای فروشگاه | پروژهی نمونه، افرادش و سفارشهایش |
| ۲ | مجوزها | کارهایی که با یک سفارش میشود کرد |
| ۳ | بستهها | مجوزهایی که با هم داده میشوند، در پنل ادمین |
| ۴ | دامنههای ردیف در کد | «سفارشهای خودشان»، «سفارشهای شعبهشان» |
| ۵ | دامنههای قانونی در پنل ادمین | دامنهای که بدون کد ساخته میشود |
| ۶ | فیلدهای محافظتشده | قیمت، که فقط کسی که اجازه دارد میخواند |
| ۷ | اکشنهای وضعیت | فقط کسی که اجازهی تأیید دارد تأییدشده میکند |
| ۸ | Policyها | قانونی که هیچ مجوزی نمیتواند بگوید |
| ۹ | Viewها و API | viewهای Django و DRF، که از همان قانونها میپرسند |
| ۱۰ | نقشها | آنچه یک مشتری هیچوقت نمیتواند داشته باشد |
| ۱۱ | دسترسی به صورت کد | بستهها و نقشها، که مثل کد بازبینی میشوند |
| ۱۲ | اسمها در همهی زبانها | بستهای با اسم فارسی |
هر قدم روی قدم قبلی ساخته میشود، اما هر لایه بدون لایهی بعدی هم کار میکند: یک پروژه میتواند بعد از قدم ۴ بایستد و کامل باشد.