Django Practice Tasks
Complete Task 01 before Task 02 — the template task uses the views built in the first task.
| Task | What You Practice |
|---|---|
| 01 — Project List & Create View | LoginRequiredMixin, WorkspaceMemberMixin (reusable permission mixin), ProjectForm with cross-field validation, services.py separation (no business logic in view), POST→redirect→GET pattern, PermissionDenied handling |
| 02 — Project Detail Template | 3-folder structure (CSS/JS/HTML separated), base.html inheritance, zero inline styles/scripts, Django data to JavaScript via data-* attributes only, responsive CSS with variables, archive confirmation without inline onclick |
