# System Patterns ## Architectural Patterns ### MVT Implementation 1. Models - Use abstract base classes for common fields - Implement custom model managers for complex queries - Define clear relationships and constraints - Include field-level validation 2. Views - Prefer class-based views - Use mixins for shared functionality - Implement proper permission checks - Handle HTMX requests explicitly 3. Templates - Maintain hierarchy with base templates - Use partial templates for HTMX responses - Implement component-based structure - Follow progressive enhancement ## Design Patterns ### Data Access 1. Query Patterns - Use select_related() for foreign keys - Implement prefetch_related() for reverse relationships - Create custom model managers - Optimize database queries 2. Caching Strategy - Cache template fragments - Implement model-level caching - Use Redis for session storage - Cache invalidation rules ### Frontend Patterns 1. HTMX Integration ```html