فرهاد که به اندازهی کافی با سلری و جنگو آشنا نیست برای انجام پروژه زیر به کمک شما نیاز دارد.
پروژهی اولیه
پروژهی اولیه را از این لینک دانلود کنید. ساختار فایلهای این پروژه بهصورت زیر است:
Subscription
├── accounts
│ ├── admin.py
│ ├── apps.py
│ ├── forms.py
│ ├── __init__.py
│ ├── migrations
│ │ ├── 0001_initial.py
│ │ ├── 0002_user_special_user_alter_user_email.py
│ │ ├── 0003_alter_user_special_user.py
│ │ ├── 0004_user_task_id.py
│ │ └── __init__.py
│ ├── > models.py <
│ ├── tasks.py
│ ├── tests.py
│ └── views.py
├── blog
│ ├── admin.py
│ ├── apps.py
│ ├── __init__.py
│ ├── migrations
│ │ ├── 0001_initial.py
│ │ ├── 0002_article_views_alter_article_category.py
│ │ └── __init__.py
│ ├── models.py
│ ├── tests.py
│ ├── urls.py
│ └── > views.py <
├── config
│ ├── asgi.py
│ ├── celery.py
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── docker-compose.yml
├── Dockerfile
├── manage.py
├── Pipfile
├── Pipfile.lock
├── requirements-dev.txt
├── requirements.txt
├── static
│ └── blog
│ └── css
│ └── article_detail.css
├── templates
│ └── blog
│ ├── article_create.html
│ └── article_detail.html
└── tests
└── __init__.py
فایل accounts/models.py
مدل User
در فایل accounts/models.py
را بهنحوی تغییر دهید تا زمانی که اشتراک کاربر به اتمام رسید، ایمیلی به کاربر ارسال شود. از تسک ارسال ایمیل در فایل accounts/tasks.py
استفاده کنید.
فایل blog/views.py
ویوی ArticleCreateView
در فایل blog/views.py
را بهنحوی تغییر دهید که:
- فقط کاربران احرازهویتشده (کاربرانی که log-in کردهاند) به آن دسترسی داشته باشند.
- فیلد
author
فقط برای کاربران ادمین (superuser) وجود داشته باشد. برای کاربران عادی این فیلد نمایش داده نشود و مقدار آن برابر خود کاربر باشد. - فیلد
status
فقط برای کاربران ادمین (superuser) وجود داشته باشد. برای کاربران عادی این فیلد نمایش داده نشود و مقدار آن برابر d باشد.
تکمیلی
فیلدهای قابل ویرایش برای:
کاربر ادمین:author
, title
, slug
, body
, status
, category
, is_premium
کاربر عادی:title
, slug
, body
, category
, is_premium
- در تمپلیت
blog/article_create.html
رندر شود.
نحوه ارسال
برای حل سوال یک فایل ZIP که شامل کلیه فایلهای موجود در پروژه است، ارسال کنید.
ارسال پاسخ برای این سؤال