[{"data":1,"prerenderedAt":15016},["ShallowReactive",2],{"navigation":3,"/introduction-and-foundations/django-settings":1016,"/introduction-and-foundations/django-settings-surround":15011},[4,54,89,123,165,211,253,331,389,439,462,488,514,540,578,624,650,672,702,736,774,800,850,856,862,868,874,928],{"title":5,"path":6,"stem":7,"children":8},"Introduction and Foundations","/introduction-and-foundations","01.introduction-and-foundations/01.index",[9,10,14,18,22,26,30,34,38,42,46,50],{"title":5,"path":6,"stem":7},{"title":11,"path":12,"stem":13},"What is Django","/introduction-and-foundations/what-is-django","01.introduction-and-foundations/02.what-is-django",{"title":15,"path":16,"stem":17},"Key Concepts and Philosophy","/introduction-and-foundations/key-concepts-and-philosophy","01.introduction-and-foundations/03.key-concepts-and-philosophy",{"title":19,"path":20,"stem":21},"MVC vs MVT: Understanding Django's Architecture","/introduction-and-foundations/mvc-vs-mvt","01.introduction-and-foundations/04.mvc-vs-mvt",{"title":23,"path":24,"stem":25},"Project Structure Overview","/introduction-and-foundations/project-structure-overview","01.introduction-and-foundations/05.project-structure-overview",{"title":27,"path":28,"stem":29},"Installing Django","/introduction-and-foundations/installing-django","01.introduction-and-foundations/06.installing-django",{"title":31,"path":32,"stem":33},"Creating Your First Django Project","/introduction-and-foundations/creating-first-project","01.introduction-and-foundations/07.creating-first-project",{"title":35,"path":36,"stem":37},"Creating Your First Django App","/introduction-and-foundations/creating-first-app","01.introduction-and-foundations/08.creating-first-app",{"title":39,"path":40,"stem":41},"Your First Django \"Hello World\"","/introduction-and-foundations/hello-world","01.introduction-and-foundations/09.hello-world",{"title":43,"path":44,"stem":45},"Django Quick Start Guide","/introduction-and-foundations/quick-start-guide","01.introduction-and-foundations/10.quick-start-guide",{"title":47,"path":48,"stem":49},"How Django Handles Requests","/introduction-and-foundations/how-django-handles-requests","01.introduction-and-foundations/11.how-django-handles-requests",{"title":51,"path":52,"stem":53},"Django Settings","/introduction-and-foundations/django-settings","01.introduction-and-foundations/12.django-settings",{"title":55,"path":56,"stem":57,"children":58},"The Development Environment","/development-environment","02.development-environment/1.index",[59,61,65,69,73,77,81,85],{"title":60,"path":56,"stem":57},"Development Environment",{"title":62,"path":63,"stem":64},"Recommended Tooling for Django Development","/development-environment/recommended-tooling","02.development-environment/2.recommended-tooling",{"title":66,"path":67,"stem":68},"Virtual Environments","/development-environment/virtual-environments","02.development-environment/3.virtual-environments",{"title":70,"path":71,"stem":72},"Django Admin and Management Commands","/development-environment/admin-and-management-commands","02.development-environment/4.admin-and-management-commands",{"title":74,"path":75,"stem":76},"Django Project Settings","/development-environment/project-settings","02.development-environment/5.project-settings",{"title":78,"path":79,"stem":80},"Managing Django Environments: Local, Staging, and Production","/development-environment/environments-local-staging-production","02.development-environment/6.environments-local-staging-production",{"title":82,"path":83,"stem":84},"Running Django Development Server","/development-environment/running-development-server","02.development-environment/7.running-development-server",{"title":86,"path":87,"stem":88},"Working with Django Shell","/development-environment/working-with-shell","02.development-environment/8.working-with-shell",{"title":90,"path":91,"stem":92,"children":93},"Templates and Presentation Layer","/templates-and-presentation","03.templates-and-presentation/1.index",[94,95,99,103,107,111,115,119],{"title":90,"path":91,"stem":92},{"title":96,"path":97,"stem":98},"Introduction to Django Templates","/templates-and-presentation/introduction-to-templates","03.templates-and-presentation/2.introduction-to-templates",{"title":100,"path":101,"stem":102},"The Django Template Language","/templates-and-presentation/django-template-language","03.templates-and-presentation/3.django-template-language",{"title":104,"path":105,"stem":106},"Template Inheritance","/templates-and-presentation/template-inheritance","03.templates-and-presentation/4.template-inheritance",{"title":108,"path":109,"stem":110},"Built-in Template Tags and Filters","/templates-and-presentation/built-in-template-tags-and-filters","03.templates-and-presentation/5.built-in-template-tags-and-filters",{"title":112,"path":113,"stem":114},"Including Static Files","/templates-and-presentation/including-static-files","03.templates-and-presentation/6.including-static-files",{"title":116,"path":117,"stem":118},"Working with Media Files","/templates-and-presentation/working-with-media-files","03.templates-and-presentation/7.working-with-media-files",{"title":120,"path":121,"stem":122},"Using Alternative Template Engines","/templates-and-presentation/using-alternative-template-engines","03.templates-and-presentation/8.using-alternative-template-engines",{"title":124,"path":125,"stem":126,"children":127},"URLs and Views","/urls-and-views","04.urls-and-views/01.index",[128,129,133,137,141,145,149,153,157,161],{"title":124,"path":125,"stem":126},{"title":130,"path":131,"stem":132},"The URL Dispatcher","/urls-and-views/the-url-dispatcher","04.urls-and-views/02.the-url-dispatcher",{"title":134,"path":135,"stem":136},"Writing Function-Based Views","/urls-and-views/writing-function-based-views","04.urls-and-views/03.writing-function-based-views",{"title":138,"path":139,"stem":140},"View Decorators","/urls-and-views/view-decorators","04.urls-and-views/04.view-decorators",{"title":142,"path":143,"stem":144},"Rendering Responses","/urls-and-views/rendering-responses","04.urls-and-views/05.rendering-responses",{"title":146,"path":147,"stem":148},"Redirects","/urls-and-views/redirects","04.urls-and-views/06.redirects",{"title":150,"path":151,"stem":152},"Handling HTTP Methods","/urls-and-views/handling-http-methods","04.urls-and-views/07.handling-http-methods",{"title":154,"path":155,"stem":156},"Conditional View Processing","/urls-and-views/conditional-view-processing","04.urls-and-views/08.conditional-view-processing",{"title":158,"path":159,"stem":160},"File Uploads","/urls-and-views/file-uploads","04.urls-and-views/09.file-uploads",{"title":162,"path":163,"stem":164},"Using Django Shortcut Functions","/urls-and-views/using-django-shortcut-functions","04.urls-and-views/10.using-django-shortcut-functions",{"title":166,"path":167,"stem":168,"children":169},"Class Based Views","/class-based-views","05.class-based-views/01.index",[170,171,175,179,183,187,191,195,199,203,207],{"title":166,"path":167,"stem":168},{"title":172,"path":173,"stem":174},"Introduction to Class-Based Views","/class-based-views/introduction-to-class-based-views","05.class-based-views/02.introduction-to-class-based-views",{"title":176,"path":177,"stem":178},"Common Base Classes","/class-based-views/common-base-classes","05.class-based-views/03.common-base-classes",{"title":180,"path":181,"stem":182},"Built-in Generic Views","/class-based-views/built-in-generic-views","05.class-based-views/04.built-in-generic-views",{"title":184,"path":185,"stem":186},"Views for CRUD Operations","/class-based-views/views-for-crud-operations","05.class-based-views/05.views-for-crud-operations",{"title":188,"path":189,"stem":190},"Handling Forms with Class-Based Views","/class-based-views/handling-forms-with-class-based-views","05.class-based-views/06.handling-forms-with-class-based-views",{"title":192,"path":193,"stem":194},"Using Mixins","/class-based-views/using-mixins","05.class-based-views/07.using-mixins",{"title":196,"path":197,"stem":198},"URL Configuration with Class-Based Views","/class-based-views/url-configuration-with-class-based-views","05.class-based-views/08.url-configuration-with-class-based-views",{"title":200,"path":201,"stem":202},"Subclassing Generic Views","/class-based-views/subclassing-generic-views","05.class-based-views/09.subclassing-generic-views",{"title":204,"path":205,"stem":206},"Asynchronous Class-Based Views","/class-based-views/asynchronous-class-based-views","05.class-based-views/10.asynchronous-class-based-views",{"title":208,"path":209,"stem":210},"Pagination","/class-based-views/pagination","05.class-based-views/11.pagination",{"title":212,"path":213,"stem":214,"children":215},"Forms and User Input","/forms-and-user-input","06.forms-and-user-input/01.index",[216,217,221,225,229,233,237,241,245,249],{"title":212,"path":213,"stem":214},{"title":218,"path":219,"stem":220},"Understanding HTML Forms","/forms-and-user-input/understanding-html-forms","06.forms-and-user-input/02.understanding-html-forms",{"title":222,"path":223,"stem":224},"Django's Role in Form Handling","/forms-and-user-input/djangos-role-in-form-handling","06.forms-and-user-input/03.djangos-role-in-form-handling",{"title":226,"path":227,"stem":228},"Creating Forms with Forms API","/forms-and-user-input/creating-forms-with-forms-api","06.forms-and-user-input/04.creating-forms-with-forms-api",{"title":230,"path":231,"stem":232},"Form Validation","/forms-and-user-input/form-validation","06.forms-and-user-input/05.form-validation",{"title":234,"path":235,"stem":236},"Built-in Fields and Widgets","/forms-and-user-input/built-in-fields-and-widgets","06.forms-and-user-input/06.built-in-fields-and-widgets",{"title":238,"path":239,"stem":240},"Form Rendering in Templates","/forms-and-user-input/form-rendering-in-templates","06.forms-and-user-input/07.form-rendering-in-templates",{"title":242,"path":243,"stem":244},"Model Forms","/forms-and-user-input/model-forms","06.forms-and-user-input/08.model-forms",{"title":246,"path":247,"stem":248},"Advanced Form Techniques","/forms-and-user-input/advanced-form-techniques","06.forms-and-user-input/09.advanced-form-techniques",{"title":250,"path":251,"stem":252},"Security Considerations for Forms","/forms-and-user-input/security-considerations-for-forms","06.forms-and-user-input/10.security-considerations-for-forms",{"title":254,"path":255,"stem":256,"children":257},"Models and Databases","/models-and-databases","07.models-and-databases/01.index",[258,259,263,267,271,275,279,283,287,291,295,299,303,307,311,315,319,323,327],{"title":254,"path":255,"stem":256},{"title":260,"path":261,"stem":262},"Understanding Django Models","/models-and-databases/understanding-django-models","07.models-and-databases/02.understanding-django-models",{"title":264,"path":265,"stem":266},"Defining Fields","/models-and-databases/defining-fields","07.models-and-databases/03.defining-fields",{"title":268,"path":269,"stem":270},"Relationships and Foreign Keys","/models-and-databases/relationships-and-foreign-keys","07.models-and-databases/04.relationships-and-foreign-keys",{"title":272,"path":273,"stem":274},"Examples of Relationship Patterns","/models-and-databases/examples-of-relationship-patterns","07.models-and-databases/05.examples-of-relationship-patterns",{"title":276,"path":277,"stem":278},"Making Queries","/models-and-databases/making-queries","07.models-and-databases/06.making-queries",{"title":280,"path":281,"stem":282},"Filtering, Ordering, and Slicing","/models-and-databases/filtering-ordering-slicing","07.models-and-databases/07.filtering-ordering-slicing",{"title":284,"path":285,"stem":286},"Managers and QuerySets","/models-and-databases/managers-and-querysets","07.models-and-databases/08.managers-and-querysets",{"title":288,"path":289,"stem":290},"Aggregation","/models-and-databases/aggregation","07.models-and-databases/09.aggregation",{"title":292,"path":293,"stem":294},"Search","/models-and-databases/search","07.models-and-databases/10.search",{"title":296,"path":297,"stem":298},"Raw SQL Queries","/models-and-databases/raw-sql-queries","07.models-and-databases/11.raw-sql-queries",{"title":300,"path":301,"stem":302},"Transactions","/models-and-databases/transactions","07.models-and-databases/12.transactions",{"title":304,"path":305,"stem":306},"Multiple Databases","/models-and-databases/multiple-databases","07.models-and-databases/13.multiple-databases",{"title":308,"path":309,"stem":310},"Tablespaces","/models-and-databases/tablespaces","07.models-and-databases/14.tablespaces",{"title":312,"path":313,"stem":314},"Composite Primary Keys","/models-and-databases/composite-primary-keys","07.models-and-databases/15.composite-primary-keys",{"title":316,"path":317,"stem":318},"Database Instrumentation","/models-and-databases/database-instrumentation","07.models-and-databases/16.database-instrumentation",{"title":320,"path":321,"stem":322},"Database Optimization","/models-and-databases/database-optimization","07.models-and-databases/17.database-optimization",{"title":324,"path":325,"stem":326},"Fixtures","/models-and-databases/fixtures","07.models-and-databases/18.fixtures",{"title":328,"path":329,"stem":330},"Signals","/models-and-databases/signals","07.models-and-databases/19.signals",{"title":332,"path":333,"stem":334,"children":335},"Migrations","/migrations","08.migrations/01.index",[336,337,341,345,349,353,357,361,365,369,373,377,381,385],{"title":332,"path":333,"stem":334},{"title":338,"path":339,"stem":340},"How Migrations Work","/migrations/how-migrations-work","08.migrations/02.how-migrations-work",{"title":342,"path":343,"stem":344},"Management Commands","/migrations/management-commands","08.migrations/03.management-commands",{"title":346,"path":347,"stem":348},"Dependencies and Workflow","/migrations/dependencies-and-workflow","08.migrations/04.dependencies-and-workflow",{"title":350,"path":351,"stem":352},"Transaction Handling","/migrations/transaction-handling","08.migrations/05.transaction-handling",{"title":354,"path":355,"stem":356},"Adding Migrations to Apps","/migrations/adding-migrations-to-apps","08.migrations/06.adding-migrations-to-apps",{"title":358,"path":359,"stem":360},"Reversing Migrations","/migrations/reversing-migrations","08.migrations/07.reversing-migrations",{"title":362,"path":363,"stem":364},"Historical Models","/migrations/historical-models","08.migrations/08.historical-models",{"title":366,"path":367,"stem":368},"Considerations When Removing Fields","/migrations/considerations-when-removing-fields","08.migrations/09.considerations-when-removing-fields",{"title":370,"path":371,"stem":372},"Data Migrations","/migrations/data-migrations","08.migrations/10.data-migrations",{"title":374,"path":375,"stem":376},"Squashing Migrations","/migrations/squashing-migrations","08.migrations/11.squashing-migrations",{"title":378,"path":379,"stem":380},"Serializing Values","/migrations/serializing-values","08.migrations/12.serializing-values",{"title":382,"path":383,"stem":384},"Supporting Multiple Django Versions","/migrations/supporting-multiple-django-versions","08.migrations/13.supporting-multiple-django-versions",{"title":386,"path":387,"stem":388},"Django Serialization Framework","/migrations/django-serialization-framework","08.migrations/14.django-serialization-framework",{"title":390,"path":391,"stem":392,"children":393},"Authentication and Authorization","/authentication-and-authorization","09.authentication-and-authorization/01.index",[394,395,399,403,407,411,415,419,423,427,431,435],{"title":390,"path":391,"stem":392},{"title":396,"path":397,"stem":398},"Overview of Django's Authentication System","/authentication-and-authorization/overview-of-django-authentication-system","09.authentication-and-authorization/02.overview-of-django-authentication-system",{"title":400,"path":401,"stem":402},"Users and Groups","/authentication-and-authorization/users-and-groups","09.authentication-and-authorization/03.users-and-groups",{"title":404,"path":405,"stem":406},"Permissions","/authentication-and-authorization/permissions","09.authentication-and-authorization/04.permissions",{"title":408,"path":409,"stem":410},"Password Management","/authentication-and-authorization/password-management","09.authentication-and-authorization/05.password-management",{"title":412,"path":413,"stem":414},"Authentication Views","/authentication-and-authorization/authentication-views","09.authentication-and-authorization/06.authentication-views",{"title":416,"path":417,"stem":418},"Login and Logout","/authentication-and-authorization/login-and-logout","09.authentication-and-authorization/07.login-and-logout",{"title":420,"path":421,"stem":422},"Custom User Models","/authentication-and-authorization/custom-user-models","09.authentication-and-authorization/08.custom-user-models",{"title":424,"path":425,"stem":426},"Middleware for Authentication","/authentication-and-authorization/middleware-for-authentication","09.authentication-and-authorization/09.middleware-for-authentication",{"title":428,"path":429,"stem":430},"Authorization in Views and Templates","/authentication-and-authorization/authorization-in-views-and-templates","09.authentication-and-authorization/10.authorization-in-views-and-templates",{"title":432,"path":433,"stem":434},"Integrating Social Authentication","/authentication-and-authorization/integrating-social-authentication","09.authentication-and-authorization/11.integrating-social-authentication",{"title":436,"path":437,"stem":438},"Security Best Practices","/authentication-and-authorization/security-best-practices","09.authentication-and-authorization/12.security-best-practices",{"title":440,"path":441,"stem":442,"children":443},"Sessions, Cookies, and State","/sessions-cookies-state","10.sessions-cookies-state/01.index",[444,446,450,454,458],{"title":445,"path":441,"stem":442},"Sessions, Cookies, and State Management",{"title":447,"path":448,"stem":449},"Introduction to Sessions","/sessions-cookies-state/introduction-to-sessions","10.sessions-cookies-state/02.introduction-to-sessions",{"title":451,"path":452,"stem":453},"Working with Cookies","/sessions-cookies-state/working-with-cookies","10.sessions-cookies-state/03.working-with-cookies",{"title":455,"path":456,"stem":457},"Server-Side Session Storage Options","/sessions-cookies-state/server-side-session-storage-options","10.sessions-cookies-state/04.server-side-session-storage-options",{"title":459,"path":460,"stem":461},"Session Security","/sessions-cookies-state/session-security","10.sessions-cookies-state/05.session-security",{"title":463,"path":464,"stem":465,"children":466},"Working with Files","/working-with-files","11.working-with-files/01.index",[467,468,472,476,480,484],{"title":463,"path":464,"stem":465},{"title":469,"path":470,"stem":471},"Files in Models","/working-with-files/files-in-models","11.working-with-files/02.files-in-models",{"title":473,"path":474,"stem":475},"The File Object","/working-with-files/the-file-object","11.working-with-files/03.the-file-object",{"title":477,"path":478,"stem":479},"Storage Backends","/working-with-files/storage-backends","11.working-with-files/04.storage-backends",{"title":481,"path":482,"stem":483},"Using Cloud Storage Providers","/working-with-files/using-cloud-storage-providers","11.working-with-files/05.using-cloud-storage-providers",{"title":485,"path":486,"stem":487},"Managing Media in Production","/working-with-files/managing-media-in-production","11.working-with-files/06.managing-media-in-production",{"title":489,"path":490,"stem":491,"children":492},"Admin Site","/admin-site","12.admin-site/01.index",[493,494,498,502,506,510],{"title":489,"path":490,"stem":491},{"title":495,"path":496,"stem":497},"Enabling the Admin","/admin-site/enabling-the-admin","12.admin-site/02.enabling-the-admin",{"title":499,"path":500,"stem":501},"Registering Models","/admin-site/registering-models","12.admin-site/03.registering-models",{"title":503,"path":504,"stem":505},"Customizing Admin Display","/admin-site/customizing-admin-display","12.admin-site/04.customizing-admin-display",{"title":507,"path":508,"stem":509},"Admin Actions","/admin-site/admin-actions","12.admin-site/05.admin-actions",{"title":511,"path":512,"stem":513},"Admin Security Best Practices","/admin-site/admin-security-best-practices","12.admin-site/06.admin-security-best-practices",{"title":515,"path":516,"stem":517,"children":518},"Middleware","/middleware","13.middleware/01.index",[519,520,524,528,532,536],{"title":515,"path":516,"stem":517},{"title":521,"path":522,"stem":523},"Middleware Overview","/middleware/middleware-overview","13.middleware/02.middleware-overview",{"title":525,"path":526,"stem":527},"Built-in Middleware","/middleware/built-in-middleware","13.middleware/03.built-in-middleware",{"title":529,"path":530,"stem":531},"Creating Custom Middleware","/middleware/creating-custom-middleware","13.middleware/04.creating-custom-middleware",{"title":533,"path":534,"stem":535},"Middleware Ordering","/middleware/middleware-ordering","13.middleware/05.middleware-ordering",{"title":537,"path":538,"stem":539},"Performance and Debugging","/middleware/performance-and-debugging","13.middleware/06.performance-and-debugging",{"title":541,"path":542,"stem":543,"children":544},"Security","/security","14.security/01.index",[545,546,550,554,558,562,566,570,574],{"title":541,"path":542,"stem":543},{"title":547,"path":548,"stem":549},"Django Security Philosophy","/security/django-security-philosophy","14.security/02.django-security-philosophy",{"title":551,"path":552,"stem":553},"Cross Site Request Forgery","/security/cross-site-request-forgery","14.security/03.cross-site-request-forgery",{"title":555,"path":556,"stem":557},"Cross Site Scripting","/security/cross-site-scripting","14.security/04.cross-site-scripting",{"title":559,"path":560,"stem":561},"SQL Injection Protection","/security/sql-injection-protection","14.security/05.sql-injection-protection",{"title":563,"path":564,"stem":565},"Clickjacking Protection","/security/clickjacking-protection","14.security/06.clickjacking-protection",{"title":567,"path":568,"stem":569},"HTTPS Setup and HSTS","/security/https-setup-and-hsts","14.security/07.https-setup-and-hsts",{"title":571,"path":572,"stem":573},"Password Storage and Cryptography","/security/password-storage-and-cryptography","14.security/08.password-storage-and-cryptography",{"title":575,"path":576,"stem":577},"Secure Deployment Checklist","/security/secure-deployment-checklist","14.security/09.secure-deployment-checklist",{"title":579,"path":580,"stem":581,"children":582},"Testing","/testing","15.testing/01.index",[583,584,588,592,596,600,604,608,612,616,620],{"title":579,"path":580,"stem":581},{"title":585,"path":586,"stem":587},"Introduction to Django Testing","/testing/introduction-to-django-testing","15.testing/02.introduction-to-django-testing",{"title":589,"path":590,"stem":591},"Writing and Running Tests","/testing/writing-and-running-tests","15.testing/03.writing-and-running-tests",{"title":593,"path":594,"stem":595},"Test Tools","/testing/test-tools","15.testing/04.test-tools",{"title":597,"path":598,"stem":599},"Testing Models","/testing/testing-models","15.testing/05.testing-models",{"title":601,"path":602,"stem":603},"Testing Views","/testing/testing-views","15.testing/06.testing-views",{"title":605,"path":606,"stem":607},"Testing Forms","/testing/testing-forms","15.testing/07.testing-forms",{"title":609,"path":610,"stem":611},"Testing Templates","/testing/testing-templates","15.testing/08.testing-templates",{"title":613,"path":614,"stem":615},"Testing Authentication","/testing/testing-authentication","15.testing/09.testing-authentication",{"title":617,"path":618,"stem":619},"Advanced Testing Topics","/testing/advanced-testing-topics","15.testing/10.advanced-testing-topics",{"title":621,"path":622,"stem":623},"Performance Testing","/testing/performance-testing","15.testing/11.performance-testing",{"title":625,"path":626,"stem":627,"children":628},"Static Assets and Frontend Integration","/static-assets-and-frontend-integration","16.static-assets-and-frontend-integration/01.index",[629,630,634,638,642,646],{"title":625,"path":626,"stem":627},{"title":631,"path":632,"stem":633},"Working with Static Files","/static-assets-and-frontend-integration/working-with-static-files","16.static-assets-and-frontend-integration/02.working-with-static-files",{"title":635,"path":636,"stem":637},"Integrating CSS and JavaScript","/static-assets-and-frontend-integration/integrating-css-and-javascript","16.static-assets-and-frontend-integration/03.integrating-css-and-javascript",{"title":639,"path":640,"stem":641},"Using Build Tools like Vite or Webpack","/static-assets-and-frontend-integration/using-build-tools-like-vite-or-webpack","16.static-assets-and-frontend-integration/04.using-build-tools-like-vite-or-webpack",{"title":643,"path":644,"stem":645},"Using React or Vue with Django","/static-assets-and-frontend-integration/using-react-or-vue-with-django","16.static-assets-and-frontend-integration/05.using-react-or-vue-with-django",{"title":647,"path":648,"stem":649},"Managing CORS","/static-assets-and-frontend-integration/managing-cors","16.static-assets-and-frontend-integration/06.managing-cors",{"title":651,"path":652,"stem":653,"children":654},"Internationalization and Localization","/internationalization-and-localization","17.internationalization-and-localization/01.index",[655,656,660,664,668],{"title":651,"path":652,"stem":653},{"title":657,"path":658,"stem":659},"Enabling Translation","/internationalization-and-localization/enabling-translation","17.internationalization-and-localization/02.enabling-translation",{"title":661,"path":662,"stem":663},"Translating Text in Code and Templates","/internationalization-and-localization/translating-text-in-code-and-templates","17.internationalization-and-localization/03.translating-text-in-code-and-templates",{"title":665,"path":666,"stem":667},"Timezone Support","/internationalization-and-localization/timezone-support","17.internationalization-and-localization/04.timezone-support",{"title":669,"path":670,"stem":671},"Locale Middleware","/internationalization-and-localization/locale-middleware","17.internationalization-and-localization/05.locale-middleware",{"title":673,"path":674,"stem":675,"children":676},"Caching","/caching","18.caching/01.index",[677,678,682,686,690,694,698],{"title":673,"path":674,"stem":675},{"title":679,"path":680,"stem":681},"Introduction to Caching","/caching/introduction-to-caching","18.caching/02.introduction-to-caching",{"title":683,"path":684,"stem":685},"Cache Backends","/caching/cache-backends","18.caching/03.cache-backends",{"title":687,"path":688,"stem":689},"Per View Caching","/caching/per-view-caching","18.caching/04.per-view-caching",{"title":691,"path":692,"stem":693},"Low Level Cache API","/caching/low-level-cache-api","18.caching/05.low-level-cache-api",{"title":695,"path":696,"stem":697},"Template Fragment Caching","/caching/template-fragment-caching","18.caching/06.template-fragment-caching",{"title":699,"path":700,"stem":701},"Deployment Level Caching Patterns","/caching/deployment-level-caching-patterns","18.caching/07.deployment-level-caching-patterns",{"title":703,"path":704,"stem":705,"children":706},"Asynchronous Django","/asynchronous-django","19.asynchronous-django/01.index",[707,708,712,716,720,724,728,732],{"title":703,"path":704,"stem":705},{"title":709,"path":710,"stem":711},"Introduction to ASGI","/asynchronous-django/introduction-to-asgi","19.asynchronous-django/02.introduction-to-asgi",{"title":713,"path":714,"stem":715},"Async Views","/asynchronous-django/async-views","19.asynchronous-django/03.async-views",{"title":717,"path":718,"stem":719},"Async ORM Status","/asynchronous-django/async-orm-status","19.asynchronous-django/04.async-orm-status",{"title":721,"path":722,"stem":723},"WebSockets with Channels","/asynchronous-django/websockets-with-channels","19.asynchronous-django/05.websockets-with-channels",{"title":725,"path":726,"stem":727},"Background Tasks with Celery or RQ","/asynchronous-django/background-tasks-with-celery-or-rq","19.asynchronous-django/06.background-tasks-with-celery-or-rq",{"title":729,"path":730,"stem":731},"Asynchronous Support","/asynchronous-django/asynchronous-support","19.asynchronous-django/07.asynchronous-support",{"title":733,"path":734,"stem":735},"Django's Tasks Framework","/asynchronous-django/django-tasks-framework","19.asynchronous-django/08.django-tasks-framework",{"title":737,"path":738,"stem":739,"children":740},"Deployment","/deployment","20.deployment/01.index",[741,742,746,750,754,758,762,766,770],{"title":737,"path":738,"stem":739},{"title":743,"path":744,"stem":745},"Preparing for Production","/deployment/preparing-for-production","20.deployment/02.preparing-for-production",{"title":747,"path":748,"stem":749},"Using WSGI and ASGI Servers","/deployment/using-wsgi-and-asgi-servers","20.deployment/03.using-wsgi-and-asgi-servers",{"title":751,"path":752,"stem":753},"Deploying on Linux Servers","/deployment/deploying-on-linux-servers","20.deployment/04.deploying-on-linux-servers",{"title":755,"path":756,"stem":757},"Using Docker","/deployment/using-docker","20.deployment/05.using-docker",{"title":759,"path":760,"stem":761},"Cloud Deployment Guides","/deployment/cloud-deployment-guides","20.deployment/06.cloud-deployment-guides",{"title":763,"path":764,"stem":765},"Scaling and Load Balancing","/deployment/scaling-and-load-balancing","20.deployment/07.scaling-and-load-balancing",{"title":767,"path":768,"stem":769},"Monitoring and Logging","/deployment/monitoring-and-logging","20.deployment/08.monitoring-and-logging",{"title":771,"path":772,"stem":773},"Backup Strategies","/deployment/backup-strategies","20.deployment/09.backup-strategies",{"title":775,"path":776,"stem":777,"children":778},"Performance and Optimization","/performance-and-optimization","21.performance-and-optimization/01.index",[779,780,784,788,792,796],{"title":775,"path":776,"stem":777},{"title":781,"path":782,"stem":783},"Query Optimization","/performance-and-optimization/query-optimization","21.performance-and-optimization/02.query-optimization",{"title":785,"path":786,"stem":787},"Template Rendering Optimization","/performance-and-optimization/template-rendering-optimization","21.performance-and-optimization/03.template-rendering-optimization",{"title":789,"path":790,"stem":791},"Using Select Related and Prefetch Related","/performance-and-optimization/using-select-related-and-prefetch-related","21.performance-and-optimization/04.using-select-related-and-prefetch-related",{"title":793,"path":794,"stem":795},"Caching Strategies","/performance-and-optimization/caching-strategies","21.performance-and-optimization/05.caching-strategies",{"title":797,"path":798,"stem":799},"Profiling Django Apps","/performance-and-optimization/profiling-django-apps","21.performance-and-optimization/06.profiling-django-apps",{"title":801,"path":802,"stem":803,"children":804},"Advanced and Expert Topics","/advanced-and-expert-topics","22.advanced-and-expert-topics/01.index",[805,806,810,814,818,822,826,830,834,838,842,846],{"title":801,"path":802,"stem":803},{"title":807,"path":808,"stem":809},"System Architecture Patterns","/advanced-and-expert-topics/system-architecture-patterns","22.advanced-and-expert-topics/02.system-architecture-patterns",{"title":811,"path":812,"stem":813},"Domain Driven Design with Django","/advanced-and-expert-topics/domain-driven-design-with-django","22.advanced-and-expert-topics/03.domain-driven-design-with-django",{"title":815,"path":816,"stem":817},"Building Large Scale Django Projects","/advanced-and-expert-topics/building-large-scale-django-projects","22.advanced-and-expert-topics/04.building-large-scale-django-projects",{"title":819,"path":820,"stem":821},"Plugin Architectures for Django Apps","/advanced-and-expert-topics/plugin-architectures-for-django-apps","22.advanced-and-expert-topics/05.plugin-architectures-for-django-apps",{"title":823,"path":824,"stem":825},"Extending Django's Core","/advanced-and-expert-topics/extending-djangos-core","22.advanced-and-expert-topics/06.extending-djangos-core",{"title":827,"path":828,"stem":829},"Custom ORM Expressions","/advanced-and-expert-topics/custom-orm-expressions","22.advanced-and-expert-topics/07.custom-orm-expressions",{"title":831,"path":832,"stem":833},"Custom Management Commands","/advanced-and-expert-topics/custom-management-commands","22.advanced-and-expert-topics/08.custom-management-commands",{"title":835,"path":836,"stem":837},"Working with Signals","/advanced-and-expert-topics/working-with-signals","22.advanced-and-expert-topics/09.working-with-signals",{"title":839,"path":840,"stem":841},"Building Reusable Django Packages","/advanced-and-expert-topics/building-reusable-django-packages","22.advanced-and-expert-topics/10.building-reusable-django-packages",{"title":843,"path":844,"stem":845},"Integrating Microservices","/advanced-and-expert-topics/integrating-microservices","22.advanced-and-expert-topics/11.integrating-microservices",{"title":847,"path":848,"stem":849},"Advanced Security Hardening","/advanced-and-expert-topics/advanced-security-hardening","22.advanced-and-expert-topics/12.advanced-security-hardening",{"title":851,"path":852,"stem":853,"children":854},"Logging in Django","/logging-in-django","23.logging-in-django/01.index",[855],{"title":851,"path":852,"stem":853},{"title":857,"path":858,"stem":859,"children":860},"FAQ and Troubleshooting","/faq-and-troubleshooting","24.faq-and-troubleshooting/01.index",[861],{"title":857,"path":858,"stem":859},{"title":863,"path":864,"stem":865,"children":866},"External Packages and Ecosystem","/external-packages-and-ecosystem","25.external-packages-and-ecosystem/01.index",[867],{"title":863,"path":864,"stem":865},{"title":869,"path":870,"stem":871,"children":872},"Django Internals and Contributing","/django-internals-and-contributing","26.django-internals-and-contributing/01.index",[873],{"title":869,"path":870,"stem":871},{"title":875,"path":876,"stem":877,"children":878},"Microservices with Django","/microservices-with-django","27.microservices-with-django/01.index",[879,880,884,888,892,896,900,904,908,912,916,920,924],{"title":875,"path":876,"stem":877},{"title":881,"path":882,"stem":883},"What Is a Microservice?","/microservices-with-django/what-is-a-microservice","27.microservices-with-django/02.what-is-a-microservice",{"title":885,"path":886,"stem":887},"Introducing the Django Microservices Architecture","/microservices-with-django/django-microservices-architecture","27.microservices-with-django/03.django-microservices-architecture",{"title":889,"path":890,"stem":891},"Setting Up the Development and Runtime Environment","/microservices-with-django/development-environment","27.microservices-with-django/04.development-environment",{"title":893,"path":894,"stem":895},"Cloud-native Data Processing with MongoDB","/microservices-with-django/cloud-native-data-processing","27.microservices-with-django/05.cloud-native-data-processing",{"title":897,"path":898,"stem":899},"Creating RESTful APIs for Microservices","/microservices-with-django/restful-apis","27.microservices-with-django/06.restful-apis",{"title":901,"path":902,"stem":903},"Orchestrating Microservices with Celery and RabbitMQ","/microservices-with-django/orchestrating-celery-rabbitmq","27.microservices-with-django/07.orchestrating-celery-rabbitmq",{"title":905,"path":906,"stem":907},"Testing Microservices","/microservices-with-django/testing-microservices","27.microservices-with-django/08.testing-microservices",{"title":909,"path":910,"stem":911},"Deploying Microservices","/microservices-with-django/deploying-microservices","27.microservices-with-django/09.deploying-microservices",{"title":913,"path":914,"stem":915},"Securing Microservices","/microservices-with-django/securing-microservices","27.microservices-with-django/10.securing-microservices",{"title":917,"path":918,"stem":919},"Improving Microservices Performance with Caching","/microservices-with-django/performance-caching","27.microservices-with-django/11.performance-caching",{"title":921,"path":922,"stem":923},"Best Practices","/microservices-with-django/best-practices","27.microservices-with-django/12.best-practices",{"title":925,"path":926,"stem":927},"Transforming a Monolithic Web App into a Microservice version","/microservices-with-django/monolith-to-microservices","27.microservices-with-django/13.monolith-to-microservices",{"title":929,"path":930,"stem":931,"children":932},"Releases","/releases","releases",[933,936,940,944,948,952,956,960,964,968,972,976,980,984,988,992,996,1000,1004,1008,1012],{"title":934,"path":930,"stem":935},"Django Releases","releases/index",{"title":937,"path":938,"stem":939},"Django 5.1.10 release notes","/releases/5.1.10","releases/5.1.10",{"title":941,"path":942,"stem":943},"Django 5.1.11 release notes","/releases/5.1.11","releases/5.1.11",{"title":945,"path":946,"stem":947},"Django 5.1.12 release notes","/releases/5.1.12","releases/5.1.12",{"title":949,"path":950,"stem":951},"Django 5.1.13 release notes","/releases/5.1.13","releases/5.1.13",{"title":953,"path":954,"stem":955},"Django 5.1.14 release notes","/releases/5.1.14","releases/5.1.14",{"title":957,"path":958,"stem":959},"Django 5.1.15 release notes","/releases/5.1.15","releases/5.1.15",{"title":961,"path":962,"stem":963},"Django 5.2 release notes","/releases/5.2","releases/5.2",{"title":965,"path":966,"stem":967},"Django 5.2.1 release notes","/releases/5.2.1","releases/5.2.1",{"title":969,"path":970,"stem":971},"Django 5.2.10 release notes","/releases/5.2.10","releases/5.2.10",{"title":973,"path":974,"stem":975},"Django 5.2.2 release notes","/releases/5.2.2","releases/5.2.2",{"title":977,"path":978,"stem":979},"Django 5.2.3 release notes","/releases/5.2.3","releases/5.2.3",{"title":981,"path":982,"stem":983},"Django 5.2.4 release notes","/releases/5.2.4","releases/5.2.4",{"title":985,"path":986,"stem":987},"Django 5.2.5 release notes","/releases/5.2.5","releases/5.2.5",{"title":989,"path":990,"stem":991},"Django 5.2.6 release notes","/releases/5.2.6","releases/5.2.6",{"title":993,"path":994,"stem":995},"Django 5.2.7 release notes","/releases/5.2.7","releases/5.2.7",{"title":997,"path":998,"stem":999},"Django 5.2.8 release notes","/releases/5.2.8","releases/5.2.8",{"title":1001,"path":1002,"stem":1003},"Django 5.2.9 release notes","/releases/5.2.9","releases/5.2.9",{"title":1005,"path":1006,"stem":1007},"Django 6.0 release notes","/releases/6.0","releases/6.0",{"title":1009,"path":1010,"stem":1011},"Django 6.0.1 release notes","/releases/6.0.1","releases/6.0.1",{"title":1013,"path":1014,"stem":1015},"Django 6.1 release notes - UNDER DEVELOPMENT","/releases/6.1","releases/6.1",{"id":1017,"title":51,"body":1018,"description":1028,"extension":15006,"links":15007,"meta":15008,"navigation":1120,"path":52,"seo":15009,"stem":53,"__hash__":15010},"docs/01.introduction-and-foundations/12.django-settings.md",{"type":1019,"value":1020,"toc":14964},"minimark",[1021,1025,1029,1034,1039,1042,1067,1071,1991,1995,1999,2005,2067,2071,2128,2132,2256,2260,2264,2267,2357,2361,2685,2689,2693,3470,3474,3748,3876,3880,3884,5000,5004,5732,5735,5739,6898,6902,7090,7355,7359,7363,8120,8124,9451,9455,9459,10660,10664,11138,11142,12087,12091,12095,12458,12462,13147,13151,13799,13803,14958,14961],[1022,1023,51],"h1",{"id":1024},"django-settings",[1026,1027,1028],"p",{},"Django settings are the configuration backbone of your Django project. They control everything from database connections to security features, middleware configuration, and application behavior. Understanding how to properly configure and manage settings is crucial for building robust Django applications.",[1030,1031,1033],"h2",{"id":1032},"the-basics","The Basics",[1035,1036,1038],"h3",{"id":1037},"what-are-django-settings","What Are Django Settings?",[1026,1040,1041],{},"Django settings are Python variables defined in a settings module that configure various aspects of your Django project. These settings control:",[1043,1044,1045,1049,1052,1055,1058,1061,1064],"ul",{},[1046,1047,1048],"li",{},"Database configuration",[1046,1050,1051],{},"Security settings",[1046,1053,1054],{},"Middleware and installed apps",[1046,1056,1057],{},"Static files and media handling",[1046,1059,1060],{},"Internationalization and localization",[1046,1062,1063],{},"Caching and session configuration",[1046,1065,1066],{},"Email and logging settings",[1035,1068,1070],{"id":1069},"settings-module-structure","Settings Module Structure",[1072,1073,1078],"pre",{"className":1074,"code":1075,"language":1076,"meta":1077,"style":1077},"language-python shiki shiki-themes material-theme-lighter vitesse-light vitesse-dark","# settings.py - Basic structure\nimport os\nfrom pathlib import Path\n\n# Build paths inside the project like this: BASE_DIR / 'subdir'.\nBASE_DIR = Path(__file__).resolve().parent.parent\n\n# SECURITY WARNING: keep the secret key used in production secret!\nSECRET_KEY = 'your-secret-key-here'\n\n# SECURITY WARNING: don't run with debug turned on in production!\nDEBUG = True\n\nALLOWED_HOSTS = []\n\n# Application definition\nINSTALLED_APPS = [\n    'django.contrib.admin',\n    'django.contrib.auth',\n    'django.contrib.contenttypes',\n    'django.contrib.sessions',\n    'django.contrib.messages',\n    'django.contrib.staticfiles',\n    # Your apps here\n    'myapp',\n]\n\nMIDDLEWARE = [\n    'django.middleware.security.SecurityMiddleware',\n    'django.contrib.sessions.middleware.SessionMiddleware',\n    'django.middleware.common.CommonMiddleware',\n    'django.middleware.csrf.CsrfViewMiddleware',\n    'django.contrib.auth.middleware.AuthenticationMiddleware',\n    'django.contrib.messages.middleware.MessageMiddleware',\n    'django.middleware.clickjacking.XFrameOptionsMiddleware',\n]\n\nROOT_URLCONF = 'myproject.urls'\n\nTEMPLATES = [\n    {\n        'BACKEND': 'django.template.backends.django.DjangoTemplates',\n        'DIRS': [BASE_DIR / 'templates'],\n        'APP_DIRS': True,\n        'OPTIONS': {\n            'context_processors': [\n                'django.template.context_processors.debug',\n                'django.template.context_processors.request',\n                'django.contrib.auth.context_processors.auth',\n                'django.contrib.messages.context_processors.messages',\n            ],\n        },\n    },\n]\n\nWSGI_APPLICATION = 'myproject.wsgi.application'\n\n# Database\nDATABASES = {\n    'default': {\n        'ENGINE': 'django.db.backends.sqlite3',\n        'NAME': BASE_DIR / 'db.sqlite3',\n    }\n}\n\n# Internationalization\nLANGUAGE_CODE = 'en-us'\nTIME_ZONE = 'UTC'\nUSE_I18N = True\nUSE_TZ = True\n\n# Static files (CSS, JavaScript, Images)\nSTATIC_URL = '/static/'\nSTATICFILES_DIRS = [BASE_DIR / 'static']\nSTATIC_ROOT = BASE_DIR / 'staticfiles'\n\n# Media files\nMEDIA_URL = '/media/'\nMEDIA_ROOT = BASE_DIR / 'media'\n\n# Default primary key field type\nDEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'\n","python","",[1079,1080,1081,1090,1101,1115,1122,1128,1169,1174,1180,1199,1204,1210,1222,1227,1238,1243,1249,1260,1275,1287,1299,1311,1323,1335,1341,1353,1359,1364,1374,1386,1398,1410,1422,1434,1446,1458,1463,1468,1483,1488,1498,1504,1527,1558,1575,1590,1605,1618,1630,1642,1654,1660,1666,1672,1677,1682,1697,1702,1708,1718,1732,1753,1779,1785,1791,1796,1802,1817,1832,1842,1852,1857,1863,1878,1901,1920,1925,1931,1946,1965,1970,1976],"code",{"__ignoreMap":1077},[1082,1083,1086],"span",{"class":1084,"line":1085},"line",1,[1082,1087,1089],{"class":1088},"s9Tkl","# settings.py - Basic structure\n",[1082,1091,1093,1097],{"class":1084,"line":1092},2,[1082,1094,1096],{"class":1095},"siDh9","import",[1082,1098,1100],{"class":1099},"sftqT"," os\n",[1082,1102,1104,1107,1110,1112],{"class":1084,"line":1103},3,[1082,1105,1106],{"class":1095},"from",[1082,1108,1109],{"class":1099}," pathlib ",[1082,1111,1096],{"class":1095},[1082,1113,1114],{"class":1099}," Path\n",[1082,1116,1118],{"class":1084,"line":1117},4,[1082,1119,1121],{"emptyLinePlaceholder":1120},true,"\n",[1082,1123,1125],{"class":1084,"line":1124},5,[1082,1126,1127],{"class":1088},"# Build paths inside the project like this: BASE_DIR / 'subdir'.\n",[1082,1129,1131,1135,1139,1143,1146,1150,1153,1156,1159,1163,1166],{"class":1084,"line":1130},6,[1082,1132,1134],{"class":1133},"se3Ec","BASE_DIR",[1082,1136,1138],{"class":1137},"soVBu"," =",[1082,1140,1142],{"class":1141},"siWMO"," Path",[1082,1144,1145],{"class":1137},"(",[1082,1147,1149],{"class":1148},"s131V","__file__",[1082,1151,1152],{"class":1137},").",[1082,1154,1155],{"class":1141},"resolve",[1082,1157,1158],{"class":1137},"().",[1082,1160,1162],{"class":1161},"sBPpx","parent",[1082,1164,1165],{"class":1137},".",[1082,1167,1168],{"class":1161},"parent\n",[1082,1170,1172],{"class":1084,"line":1171},7,[1082,1173,1121],{"emptyLinePlaceholder":1120},[1082,1175,1177],{"class":1084,"line":1176},8,[1082,1178,1179],{"class":1088},"# SECURITY WARNING: keep the secret key used in production secret!\n",[1082,1181,1183,1186,1188,1192,1196],{"class":1084,"line":1182},9,[1082,1184,1185],{"class":1133},"SECRET_KEY",[1082,1187,1138],{"class":1137},[1082,1189,1191],{"class":1190},"sbYkP"," '",[1082,1193,1195],{"class":1194},"sTbE_","your-secret-key-here",[1082,1197,1198],{"class":1190},"'\n",[1082,1200,1202],{"class":1084,"line":1201},10,[1082,1203,1121],{"emptyLinePlaceholder":1120},[1082,1205,1207],{"class":1084,"line":1206},11,[1082,1208,1209],{"class":1088},"# SECURITY WARNING: don't run with debug turned on in production!\n",[1082,1211,1213,1216,1218],{"class":1084,"line":1212},12,[1082,1214,1215],{"class":1133},"DEBUG",[1082,1217,1138],{"class":1137},[1082,1219,1221],{"class":1220},"s8XtY"," True\n",[1082,1223,1225],{"class":1084,"line":1224},13,[1082,1226,1121],{"emptyLinePlaceholder":1120},[1082,1228,1230,1233,1235],{"class":1084,"line":1229},14,[1082,1231,1232],{"class":1133},"ALLOWED_HOSTS",[1082,1234,1138],{"class":1137},[1082,1236,1237],{"class":1137}," []\n",[1082,1239,1241],{"class":1084,"line":1240},15,[1082,1242,1121],{"emptyLinePlaceholder":1120},[1082,1244,1246],{"class":1084,"line":1245},16,[1082,1247,1248],{"class":1088},"# Application definition\n",[1082,1250,1252,1255,1257],{"class":1084,"line":1251},17,[1082,1253,1254],{"class":1133},"INSTALLED_APPS",[1082,1256,1138],{"class":1137},[1082,1258,1259],{"class":1137}," [\n",[1082,1261,1263,1266,1269,1272],{"class":1084,"line":1262},18,[1082,1264,1265],{"class":1190},"    '",[1082,1267,1268],{"class":1194},"django.contrib.admin",[1082,1270,1271],{"class":1190},"'",[1082,1273,1274],{"class":1137},",\n",[1082,1276,1278,1280,1283,1285],{"class":1084,"line":1277},19,[1082,1279,1265],{"class":1190},[1082,1281,1282],{"class":1194},"django.contrib.auth",[1082,1284,1271],{"class":1190},[1082,1286,1274],{"class":1137},[1082,1288,1290,1292,1295,1297],{"class":1084,"line":1289},20,[1082,1291,1265],{"class":1190},[1082,1293,1294],{"class":1194},"django.contrib.contenttypes",[1082,1296,1271],{"class":1190},[1082,1298,1274],{"class":1137},[1082,1300,1302,1304,1307,1309],{"class":1084,"line":1301},21,[1082,1303,1265],{"class":1190},[1082,1305,1306],{"class":1194},"django.contrib.sessions",[1082,1308,1271],{"class":1190},[1082,1310,1274],{"class":1137},[1082,1312,1314,1316,1319,1321],{"class":1084,"line":1313},22,[1082,1315,1265],{"class":1190},[1082,1317,1318],{"class":1194},"django.contrib.messages",[1082,1320,1271],{"class":1190},[1082,1322,1274],{"class":1137},[1082,1324,1326,1328,1331,1333],{"class":1084,"line":1325},23,[1082,1327,1265],{"class":1190},[1082,1329,1330],{"class":1194},"django.contrib.staticfiles",[1082,1332,1271],{"class":1190},[1082,1334,1274],{"class":1137},[1082,1336,1338],{"class":1084,"line":1337},24,[1082,1339,1340],{"class":1088},"    # Your apps here\n",[1082,1342,1344,1346,1349,1351],{"class":1084,"line":1343},25,[1082,1345,1265],{"class":1190},[1082,1347,1348],{"class":1194},"myapp",[1082,1350,1271],{"class":1190},[1082,1352,1274],{"class":1137},[1082,1354,1356],{"class":1084,"line":1355},26,[1082,1357,1358],{"class":1137},"]\n",[1082,1360,1362],{"class":1084,"line":1361},27,[1082,1363,1121],{"emptyLinePlaceholder":1120},[1082,1365,1367,1370,1372],{"class":1084,"line":1366},28,[1082,1368,1369],{"class":1133},"MIDDLEWARE",[1082,1371,1138],{"class":1137},[1082,1373,1259],{"class":1137},[1082,1375,1377,1379,1382,1384],{"class":1084,"line":1376},29,[1082,1378,1265],{"class":1190},[1082,1380,1381],{"class":1194},"django.middleware.security.SecurityMiddleware",[1082,1383,1271],{"class":1190},[1082,1385,1274],{"class":1137},[1082,1387,1389,1391,1394,1396],{"class":1084,"line":1388},30,[1082,1390,1265],{"class":1190},[1082,1392,1393],{"class":1194},"django.contrib.sessions.middleware.SessionMiddleware",[1082,1395,1271],{"class":1190},[1082,1397,1274],{"class":1137},[1082,1399,1401,1403,1406,1408],{"class":1084,"line":1400},31,[1082,1402,1265],{"class":1190},[1082,1404,1405],{"class":1194},"django.middleware.common.CommonMiddleware",[1082,1407,1271],{"class":1190},[1082,1409,1274],{"class":1137},[1082,1411,1413,1415,1418,1420],{"class":1084,"line":1412},32,[1082,1414,1265],{"class":1190},[1082,1416,1417],{"class":1194},"django.middleware.csrf.CsrfViewMiddleware",[1082,1419,1271],{"class":1190},[1082,1421,1274],{"class":1137},[1082,1423,1425,1427,1430,1432],{"class":1084,"line":1424},33,[1082,1426,1265],{"class":1190},[1082,1428,1429],{"class":1194},"django.contrib.auth.middleware.AuthenticationMiddleware",[1082,1431,1271],{"class":1190},[1082,1433,1274],{"class":1137},[1082,1435,1437,1439,1442,1444],{"class":1084,"line":1436},34,[1082,1438,1265],{"class":1190},[1082,1440,1441],{"class":1194},"django.contrib.messages.middleware.MessageMiddleware",[1082,1443,1271],{"class":1190},[1082,1445,1274],{"class":1137},[1082,1447,1449,1451,1454,1456],{"class":1084,"line":1448},35,[1082,1450,1265],{"class":1190},[1082,1452,1453],{"class":1194},"django.middleware.clickjacking.XFrameOptionsMiddleware",[1082,1455,1271],{"class":1190},[1082,1457,1274],{"class":1137},[1082,1459,1461],{"class":1084,"line":1460},36,[1082,1462,1358],{"class":1137},[1082,1464,1466],{"class":1084,"line":1465},37,[1082,1467,1121],{"emptyLinePlaceholder":1120},[1082,1469,1471,1474,1476,1478,1481],{"class":1084,"line":1470},38,[1082,1472,1473],{"class":1133},"ROOT_URLCONF",[1082,1475,1138],{"class":1137},[1082,1477,1191],{"class":1190},[1082,1479,1480],{"class":1194},"myproject.urls",[1082,1482,1198],{"class":1190},[1082,1484,1486],{"class":1084,"line":1485},39,[1082,1487,1121],{"emptyLinePlaceholder":1120},[1082,1489,1491,1494,1496],{"class":1084,"line":1490},40,[1082,1492,1493],{"class":1133},"TEMPLATES",[1082,1495,1138],{"class":1137},[1082,1497,1259],{"class":1137},[1082,1499,1501],{"class":1084,"line":1500},41,[1082,1502,1503],{"class":1137},"    {\n",[1082,1505,1507,1510,1513,1515,1518,1520,1523,1525],{"class":1084,"line":1506},42,[1082,1508,1509],{"class":1190},"        '",[1082,1511,1512],{"class":1194},"BACKEND",[1082,1514,1271],{"class":1190},[1082,1516,1517],{"class":1137},":",[1082,1519,1191],{"class":1190},[1082,1521,1522],{"class":1194},"django.template.backends.django.DjangoTemplates",[1082,1524,1271],{"class":1190},[1082,1526,1274],{"class":1137},[1082,1528,1530,1532,1535,1537,1539,1542,1544,1548,1550,1553,1555],{"class":1084,"line":1529},43,[1082,1531,1509],{"class":1190},[1082,1533,1534],{"class":1194},"DIRS",[1082,1536,1271],{"class":1190},[1082,1538,1517],{"class":1137},[1082,1540,1541],{"class":1137}," [",[1082,1543,1134],{"class":1133},[1082,1545,1547],{"class":1546},"sVsLi"," /",[1082,1549,1191],{"class":1190},[1082,1551,1552],{"class":1194},"templates",[1082,1554,1271],{"class":1190},[1082,1556,1557],{"class":1137},"],\n",[1082,1559,1561,1563,1566,1568,1570,1573],{"class":1084,"line":1560},44,[1082,1562,1509],{"class":1190},[1082,1564,1565],{"class":1194},"APP_DIRS",[1082,1567,1271],{"class":1190},[1082,1569,1517],{"class":1137},[1082,1571,1572],{"class":1220}," True",[1082,1574,1274],{"class":1137},[1082,1576,1578,1580,1583,1585,1587],{"class":1084,"line":1577},45,[1082,1579,1509],{"class":1190},[1082,1581,1582],{"class":1194},"OPTIONS",[1082,1584,1271],{"class":1190},[1082,1586,1517],{"class":1137},[1082,1588,1589],{"class":1137}," {\n",[1082,1591,1593,1596,1599,1601,1603],{"class":1084,"line":1592},46,[1082,1594,1595],{"class":1190},"            '",[1082,1597,1598],{"class":1194},"context_processors",[1082,1600,1271],{"class":1190},[1082,1602,1517],{"class":1137},[1082,1604,1259],{"class":1137},[1082,1606,1608,1611,1614,1616],{"class":1084,"line":1607},47,[1082,1609,1610],{"class":1190},"                '",[1082,1612,1613],{"class":1194},"django.template.context_processors.debug",[1082,1615,1271],{"class":1190},[1082,1617,1274],{"class":1137},[1082,1619,1621,1623,1626,1628],{"class":1084,"line":1620},48,[1082,1622,1610],{"class":1190},[1082,1624,1625],{"class":1194},"django.template.context_processors.request",[1082,1627,1271],{"class":1190},[1082,1629,1274],{"class":1137},[1082,1631,1633,1635,1638,1640],{"class":1084,"line":1632},49,[1082,1634,1610],{"class":1190},[1082,1636,1637],{"class":1194},"django.contrib.auth.context_processors.auth",[1082,1639,1271],{"class":1190},[1082,1641,1274],{"class":1137},[1082,1643,1645,1647,1650,1652],{"class":1084,"line":1644},50,[1082,1646,1610],{"class":1190},[1082,1648,1649],{"class":1194},"django.contrib.messages.context_processors.messages",[1082,1651,1271],{"class":1190},[1082,1653,1274],{"class":1137},[1082,1655,1657],{"class":1084,"line":1656},51,[1082,1658,1659],{"class":1137},"            ],\n",[1082,1661,1663],{"class":1084,"line":1662},52,[1082,1664,1665],{"class":1137},"        },\n",[1082,1667,1669],{"class":1084,"line":1668},53,[1082,1670,1671],{"class":1137},"    },\n",[1082,1673,1675],{"class":1084,"line":1674},54,[1082,1676,1358],{"class":1137},[1082,1678,1680],{"class":1084,"line":1679},55,[1082,1681,1121],{"emptyLinePlaceholder":1120},[1082,1683,1685,1688,1690,1692,1695],{"class":1084,"line":1684},56,[1082,1686,1687],{"class":1133},"WSGI_APPLICATION",[1082,1689,1138],{"class":1137},[1082,1691,1191],{"class":1190},[1082,1693,1694],{"class":1194},"myproject.wsgi.application",[1082,1696,1198],{"class":1190},[1082,1698,1700],{"class":1084,"line":1699},57,[1082,1701,1121],{"emptyLinePlaceholder":1120},[1082,1703,1705],{"class":1084,"line":1704},58,[1082,1706,1707],{"class":1088},"# Database\n",[1082,1709,1711,1714,1716],{"class":1084,"line":1710},59,[1082,1712,1713],{"class":1133},"DATABASES",[1082,1715,1138],{"class":1137},[1082,1717,1589],{"class":1137},[1082,1719,1721,1723,1726,1728,1730],{"class":1084,"line":1720},60,[1082,1722,1265],{"class":1190},[1082,1724,1725],{"class":1194},"default",[1082,1727,1271],{"class":1190},[1082,1729,1517],{"class":1137},[1082,1731,1589],{"class":1137},[1082,1733,1735,1737,1740,1742,1744,1746,1749,1751],{"class":1084,"line":1734},61,[1082,1736,1509],{"class":1190},[1082,1738,1739],{"class":1194},"ENGINE",[1082,1741,1271],{"class":1190},[1082,1743,1517],{"class":1137},[1082,1745,1191],{"class":1190},[1082,1747,1748],{"class":1194},"django.db.backends.sqlite3",[1082,1750,1271],{"class":1190},[1082,1752,1274],{"class":1137},[1082,1754,1756,1758,1761,1763,1765,1768,1770,1772,1775,1777],{"class":1084,"line":1755},62,[1082,1757,1509],{"class":1190},[1082,1759,1760],{"class":1194},"NAME",[1082,1762,1271],{"class":1190},[1082,1764,1517],{"class":1137},[1082,1766,1767],{"class":1133}," BASE_DIR",[1082,1769,1547],{"class":1546},[1082,1771,1191],{"class":1190},[1082,1773,1774],{"class":1194},"db.sqlite3",[1082,1776,1271],{"class":1190},[1082,1778,1274],{"class":1137},[1082,1780,1782],{"class":1084,"line":1781},63,[1082,1783,1784],{"class":1137},"    }\n",[1082,1786,1788],{"class":1084,"line":1787},64,[1082,1789,1790],{"class":1137},"}\n",[1082,1792,1794],{"class":1084,"line":1793},65,[1082,1795,1121],{"emptyLinePlaceholder":1120},[1082,1797,1799],{"class":1084,"line":1798},66,[1082,1800,1801],{"class":1088},"# Internationalization\n",[1082,1803,1805,1808,1810,1812,1815],{"class":1084,"line":1804},67,[1082,1806,1807],{"class":1133},"LANGUAGE_CODE",[1082,1809,1138],{"class":1137},[1082,1811,1191],{"class":1190},[1082,1813,1814],{"class":1194},"en-us",[1082,1816,1198],{"class":1190},[1082,1818,1820,1823,1825,1827,1830],{"class":1084,"line":1819},68,[1082,1821,1822],{"class":1133},"TIME_ZONE",[1082,1824,1138],{"class":1137},[1082,1826,1191],{"class":1190},[1082,1828,1829],{"class":1194},"UTC",[1082,1831,1198],{"class":1190},[1082,1833,1835,1838,1840],{"class":1084,"line":1834},69,[1082,1836,1837],{"class":1133},"USE_I18N",[1082,1839,1138],{"class":1137},[1082,1841,1221],{"class":1220},[1082,1843,1845,1848,1850],{"class":1084,"line":1844},70,[1082,1846,1847],{"class":1133},"USE_TZ",[1082,1849,1138],{"class":1137},[1082,1851,1221],{"class":1220},[1082,1853,1855],{"class":1084,"line":1854},71,[1082,1856,1121],{"emptyLinePlaceholder":1120},[1082,1858,1860],{"class":1084,"line":1859},72,[1082,1861,1862],{"class":1088},"# Static files (CSS, JavaScript, Images)\n",[1082,1864,1866,1869,1871,1873,1876],{"class":1084,"line":1865},73,[1082,1867,1868],{"class":1133},"STATIC_URL",[1082,1870,1138],{"class":1137},[1082,1872,1191],{"class":1190},[1082,1874,1875],{"class":1194},"/static/",[1082,1877,1198],{"class":1190},[1082,1879,1881,1884,1886,1888,1890,1892,1894,1897,1899],{"class":1084,"line":1880},74,[1082,1882,1883],{"class":1133},"STATICFILES_DIRS",[1082,1885,1138],{"class":1137},[1082,1887,1541],{"class":1137},[1082,1889,1134],{"class":1133},[1082,1891,1547],{"class":1546},[1082,1893,1191],{"class":1190},[1082,1895,1896],{"class":1194},"static",[1082,1898,1271],{"class":1190},[1082,1900,1358],{"class":1137},[1082,1902,1904,1907,1909,1911,1913,1915,1918],{"class":1084,"line":1903},75,[1082,1905,1906],{"class":1133},"STATIC_ROOT",[1082,1908,1138],{"class":1137},[1082,1910,1767],{"class":1133},[1082,1912,1547],{"class":1546},[1082,1914,1191],{"class":1190},[1082,1916,1917],{"class":1194},"staticfiles",[1082,1919,1198],{"class":1190},[1082,1921,1923],{"class":1084,"line":1922},76,[1082,1924,1121],{"emptyLinePlaceholder":1120},[1082,1926,1928],{"class":1084,"line":1927},77,[1082,1929,1930],{"class":1088},"# Media files\n",[1082,1932,1934,1937,1939,1941,1944],{"class":1084,"line":1933},78,[1082,1935,1936],{"class":1133},"MEDIA_URL",[1082,1938,1138],{"class":1137},[1082,1940,1191],{"class":1190},[1082,1942,1943],{"class":1194},"/media/",[1082,1945,1198],{"class":1190},[1082,1947,1949,1952,1954,1956,1958,1960,1963],{"class":1084,"line":1948},79,[1082,1950,1951],{"class":1133},"MEDIA_ROOT",[1082,1953,1138],{"class":1137},[1082,1955,1767],{"class":1133},[1082,1957,1547],{"class":1546},[1082,1959,1191],{"class":1190},[1082,1961,1962],{"class":1194},"media",[1082,1964,1198],{"class":1190},[1082,1966,1968],{"class":1084,"line":1967},80,[1082,1969,1121],{"emptyLinePlaceholder":1120},[1082,1971,1973],{"class":1084,"line":1972},81,[1082,1974,1975],{"class":1088},"# Default primary key field type\n",[1082,1977,1979,1982,1984,1986,1989],{"class":1084,"line":1978},82,[1082,1980,1981],{"class":1133},"DEFAULT_AUTO_FIELD",[1082,1983,1138],{"class":1137},[1082,1985,1191],{"class":1190},[1082,1987,1988],{"class":1194},"django.db.models.BigAutoField",[1082,1990,1198],{"class":1190},[1030,1992,1994],{"id":1993},"designating-the-settings","Designating the Settings",[1035,1996,1998],{"id":1997},"django_settings_module","DJANGO_SETTINGS_MODULE",[1026,2000,2001,2002,2004],{},"Django uses the ",[1079,2003,1998],{}," environment variable to locate your settings module:",[1072,2006,2010],{"className":2007,"code":2008,"language":2009,"meta":1077,"style":1077},"language-bash shiki shiki-themes material-theme-lighter vitesse-light vitesse-dark","# Set the settings module\nexport DJANGO_SETTINGS_MODULE=myproject.settings\n\n# Or for a specific environment\nexport DJANGO_SETTINGS_MODULE=myproject.settings.production\n","bash",[1079,2011,2012,2017,2038,2042,2047],{"__ignoreMap":1077},[1082,2013,2014],{"class":1084,"line":1085},[1082,2015,2016],{"class":1088},"# Set the settings module\n",[1082,2018,2019,2023,2027,2030,2033,2035],{"class":1084,"line":1092},[1082,2020,2022],{"class":2021},"s5Kfy","export",[1082,2024,2026],{"class":2025},"sSC40"," DJANGO_SETTINGS_MODULE",[1082,2028,2029],{"class":1137},"=",[1082,2031,2032],{"class":2025},"myproject",[1082,2034,1165],{"class":1099},[1082,2036,2037],{"class":2025},"settings\n",[1082,2039,2040],{"class":1084,"line":1103},[1082,2041,1121],{"emptyLinePlaceholder":1120},[1082,2043,2044],{"class":1084,"line":1117},[1082,2045,2046],{"class":1088},"# Or for a specific environment\n",[1082,2048,2049,2051,2053,2055,2057,2059,2062,2064],{"class":1084,"line":1124},[1082,2050,2022],{"class":2021},[1082,2052,2026],{"class":2025},[1082,2054,2029],{"class":1137},[1082,2056,2032],{"class":2025},[1082,2058,1165],{"class":1099},[1082,2060,2061],{"class":2025},"settings",[1082,2063,1165],{"class":1099},[1082,2065,2066],{"class":2025},"production\n",[1035,2068,2070],{"id":2069},"command-line-settings","Command Line Settings",[1072,2072,2074],{"className":2007,"code":2073,"language":2009,"meta":1077,"style":1077},"# Using --settings flag\npython manage.py runserver --settings=myproject.settings.development\n\n# Using --settings with other commands\npython manage.py migrate --settings=myproject.settings.production\npython manage.py collectstatic --settings=myproject.settings.production\n",[1079,2075,2076,2081,2096,2100,2105,2117],{"__ignoreMap":1077},[1082,2077,2078],{"class":1084,"line":1085},[1082,2079,2080],{"class":1088},"# Using --settings flag\n",[1082,2082,2083,2086,2089,2092],{"class":1084,"line":1092},[1082,2084,1076],{"class":2085},"sYn-s",[1082,2087,2088],{"class":1194}," manage.py",[1082,2090,2091],{"class":1194}," runserver",[1082,2093,2095],{"class":2094},"sz9Cv"," --settings=myproject.settings.development\n",[1082,2097,2098],{"class":1084,"line":1103},[1082,2099,1121],{"emptyLinePlaceholder":1120},[1082,2101,2102],{"class":1084,"line":1117},[1082,2103,2104],{"class":1088},"# Using --settings with other commands\n",[1082,2106,2107,2109,2111,2114],{"class":1084,"line":1124},[1082,2108,1076],{"class":2085},[1082,2110,2088],{"class":1194},[1082,2112,2113],{"class":1194}," migrate",[1082,2115,2116],{"class":2094}," --settings=myproject.settings.production\n",[1082,2118,2119,2121,2123,2126],{"class":1084,"line":1130},[1082,2120,1076],{"class":2085},[1082,2122,2088],{"class":1194},[1082,2124,2125],{"class":1194}," collectstatic",[1082,2127,2116],{"class":2094},[1035,2129,2131],{"id":2130},"programmatic-settings-configuration","Programmatic Settings Configuration",[1072,2133,2135],{"className":1074,"code":2134,"language":1076,"meta":1077,"style":1077},"# In your Python code\nimport os\nimport django\nfrom django.conf import settings\n\n# Configure settings before using Django\nos.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproject.settings')\ndjango.setup()\n\n# Now you can use Django\nfrom myapp.models import MyModel\n",[1079,2136,2137,2142,2148,2155,2172,2176,2181,2217,2230,2234,2239],{"__ignoreMap":1077},[1082,2138,2139],{"class":1084,"line":1085},[1082,2140,2141],{"class":1088},"# In your Python code\n",[1082,2143,2144,2146],{"class":1084,"line":1092},[1082,2145,1096],{"class":1095},[1082,2147,1100],{"class":1099},[1082,2149,2150,2152],{"class":1084,"line":1103},[1082,2151,1096],{"class":1095},[1082,2153,2154],{"class":1099}," django\n",[1082,2156,2157,2159,2162,2164,2167,2169],{"class":1084,"line":1117},[1082,2158,1106],{"class":1095},[1082,2160,2161],{"class":1099}," django",[1082,2163,1165],{"class":1137},[1082,2165,2166],{"class":1099},"conf ",[1082,2168,1096],{"class":1095},[1082,2170,2171],{"class":1099}," settings\n",[1082,2173,2174],{"class":1084,"line":1124},[1082,2175,1121],{"emptyLinePlaceholder":1120},[1082,2177,2178],{"class":1084,"line":1130},[1082,2179,2180],{"class":1088},"# Configure settings before using Django\n",[1082,2182,2183,2186,2188,2191,2193,2196,2198,2200,2202,2204,2207,2209,2212,2214],{"class":1084,"line":1171},[1082,2184,2185],{"class":1099},"os",[1082,2187,1165],{"class":1137},[1082,2189,2190],{"class":1161},"environ",[1082,2192,1165],{"class":1137},[1082,2194,2195],{"class":1141},"setdefault",[1082,2197,1145],{"class":1137},[1082,2199,1271],{"class":1190},[1082,2201,1998],{"class":1194},[1082,2203,1271],{"class":1190},[1082,2205,2206],{"class":1137},",",[1082,2208,1191],{"class":1190},[1082,2210,2211],{"class":1194},"myproject.settings",[1082,2213,1271],{"class":1190},[1082,2215,2216],{"class":1137},")\n",[1082,2218,2219,2222,2224,2227],{"class":1084,"line":1176},[1082,2220,2221],{"class":1099},"django",[1082,2223,1165],{"class":1137},[1082,2225,2226],{"class":1141},"setup",[1082,2228,2229],{"class":1137},"()\n",[1082,2231,2232],{"class":1084,"line":1182},[1082,2233,1121],{"emptyLinePlaceholder":1120},[1082,2235,2236],{"class":1084,"line":1201},[1082,2237,2238],{"class":1088},"# Now you can use Django\n",[1082,2240,2241,2243,2246,2248,2251,2253],{"class":1084,"line":1206},[1082,2242,1106],{"class":1095},[1082,2244,2245],{"class":1099}," myapp",[1082,2247,1165],{"class":1137},[1082,2249,2250],{"class":1099},"models ",[1082,2252,1096],{"class":1095},[1082,2254,2255],{"class":1099}," MyModel\n",[1030,2257,2259],{"id":2258},"default-settings","Default Settings",[1035,2261,2263],{"id":2262},"understanding-djangos-default-settings","Understanding Django's Default Settings",[1026,2265,2266],{},"Django provides sensible defaults for most settings. You can view all default settings:",[1072,2268,2270],{"className":1074,"code":2269,"language":1076,"meta":1077,"style":1077},"# View all default settings\nfrom django.conf import global_settings\nprint(dir(global_settings))\n\n# Check specific default values\nprint(global_settings.USE_TZ)  # True\nprint(global_settings.SESSION_COOKIE_AGE)  # 1209600 (2 weeks)\n",[1079,2271,2272,2277,2292,2311,2315,2320,2339],{"__ignoreMap":1077},[1082,2273,2274],{"class":1084,"line":1085},[1082,2275,2276],{"class":1088},"# View all default settings\n",[1082,2278,2279,2281,2283,2285,2287,2289],{"class":1084,"line":1092},[1082,2280,1106],{"class":1095},[1082,2282,2161],{"class":1099},[1082,2284,1165],{"class":1137},[1082,2286,2166],{"class":1099},[1082,2288,1096],{"class":1095},[1082,2290,2291],{"class":1099}," global_settings\n",[1082,2293,2294,2298,2300,2303,2305,2308],{"class":1084,"line":1103},[1082,2295,2297],{"class":2296},"sJdAF","print",[1082,2299,1145],{"class":1137},[1082,2301,2302],{"class":2296},"dir",[1082,2304,1145],{"class":1137},[1082,2306,2307],{"class":1141},"global_settings",[1082,2309,2310],{"class":1137},"))\n",[1082,2312,2313],{"class":1084,"line":1117},[1082,2314,1121],{"emptyLinePlaceholder":1120},[1082,2316,2317],{"class":1084,"line":1124},[1082,2318,2319],{"class":1088},"# Check specific default values\n",[1082,2321,2322,2324,2326,2328,2330,2333,2336],{"class":1084,"line":1130},[1082,2323,2297],{"class":2296},[1082,2325,1145],{"class":1137},[1082,2327,2307],{"class":1141},[1082,2329,1165],{"class":1137},[1082,2331,1847],{"class":2332},"sFGJz",[1082,2334,2335],{"class":1137},")",[1082,2337,2338],{"class":1088},"  # True\n",[1082,2340,2341,2343,2345,2347,2349,2352,2354],{"class":1084,"line":1171},[1082,2342,2297],{"class":2296},[1082,2344,1145],{"class":1137},[1082,2346,2307],{"class":1141},[1082,2348,1165],{"class":1137},[1082,2350,2351],{"class":2332},"SESSION_COOKIE_AGE",[1082,2353,2335],{"class":1137},[1082,2355,2356],{"class":1088},"  # 1209600 (2 weeks)\n",[1035,2358,2360],{"id":2359},"common-default-settings","Common Default Settings",[1072,2362,2364],{"className":1074,"code":2363,"language":1076,"meta":1077,"style":1077},"# These are some important defaults Django provides:\n\n# Security\nSECRET_KEY = None  # Must be set in your settings\nDEBUG = False\nALLOWED_HOSTS = []\n\n# Database\nDATABASES = {}  # Must be configured\n\n# Applications\nINSTALLED_APPS = []\n\n# Middleware\nMIDDLEWARE = []\n\n# Templates\nTEMPLATES = []\n\n# Internationalization\nLANGUAGE_CODE = 'en-us'\nTIME_ZONE = 'UTC'\nUSE_I18N = True\nUSE_L10N = True  # Deprecated in Django 4.0+\nUSE_TZ = True\n\n# Static files\nSTATIC_URL = None\nSTATIC_ROOT = None\n\n# Sessions\nSESSION_ENGINE = 'django.contrib.sessions.backends.db'\nSESSION_COOKIE_AGE = 1209600  # 2 weeks\nSESSION_COOKIE_NAME = 'sessionid'\n\n# CSRF\nCSRF_COOKIE_NAME = 'csrftoken'\nCSRF_COOKIE_AGE = 31449600  # 1 year\n\n# File uploads\nFILE_UPLOAD_MAX_MEMORY_SIZE = 2621440  # 2.5 MB\nDATA_UPLOAD_MAX_MEMORY_SIZE = 2621440  # 2.5 MB\n",[1079,2365,2366,2371,2375,2380,2392,2401,2409,2413,2417,2429,2433,2438,2446,2450,2455,2463,2467,2472,2480,2484,2488,2500,2512,2520,2532,2540,2544,2549,2558,2566,2570,2575,2589,2602,2616,2620,2625,2639,2652,2656,2661,2674],{"__ignoreMap":1077},[1082,2367,2368],{"class":1084,"line":1085},[1082,2369,2370],{"class":1088},"# These are some important defaults Django provides:\n",[1082,2372,2373],{"class":1084,"line":1092},[1082,2374,1121],{"emptyLinePlaceholder":1120},[1082,2376,2377],{"class":1084,"line":1103},[1082,2378,2379],{"class":1088},"# Security\n",[1082,2381,2382,2384,2386,2389],{"class":1084,"line":1117},[1082,2383,1185],{"class":1133},[1082,2385,1138],{"class":1137},[1082,2387,2388],{"class":1220}," None",[1082,2390,2391],{"class":1088},"  # Must be set in your settings\n",[1082,2393,2394,2396,2398],{"class":1084,"line":1124},[1082,2395,1215],{"class":1133},[1082,2397,1138],{"class":1137},[1082,2399,2400],{"class":1220}," False\n",[1082,2402,2403,2405,2407],{"class":1084,"line":1130},[1082,2404,1232],{"class":1133},[1082,2406,1138],{"class":1137},[1082,2408,1237],{"class":1137},[1082,2410,2411],{"class":1084,"line":1171},[1082,2412,1121],{"emptyLinePlaceholder":1120},[1082,2414,2415],{"class":1084,"line":1176},[1082,2416,1707],{"class":1088},[1082,2418,2419,2421,2423,2426],{"class":1084,"line":1182},[1082,2420,1713],{"class":1133},[1082,2422,1138],{"class":1137},[1082,2424,2425],{"class":1137}," {}",[1082,2427,2428],{"class":1088},"  # Must be configured\n",[1082,2430,2431],{"class":1084,"line":1201},[1082,2432,1121],{"emptyLinePlaceholder":1120},[1082,2434,2435],{"class":1084,"line":1206},[1082,2436,2437],{"class":1088},"# Applications\n",[1082,2439,2440,2442,2444],{"class":1084,"line":1212},[1082,2441,1254],{"class":1133},[1082,2443,1138],{"class":1137},[1082,2445,1237],{"class":1137},[1082,2447,2448],{"class":1084,"line":1224},[1082,2449,1121],{"emptyLinePlaceholder":1120},[1082,2451,2452],{"class":1084,"line":1229},[1082,2453,2454],{"class":1088},"# Middleware\n",[1082,2456,2457,2459,2461],{"class":1084,"line":1240},[1082,2458,1369],{"class":1133},[1082,2460,1138],{"class":1137},[1082,2462,1237],{"class":1137},[1082,2464,2465],{"class":1084,"line":1245},[1082,2466,1121],{"emptyLinePlaceholder":1120},[1082,2468,2469],{"class":1084,"line":1251},[1082,2470,2471],{"class":1088},"# Templates\n",[1082,2473,2474,2476,2478],{"class":1084,"line":1262},[1082,2475,1493],{"class":1133},[1082,2477,1138],{"class":1137},[1082,2479,1237],{"class":1137},[1082,2481,2482],{"class":1084,"line":1277},[1082,2483,1121],{"emptyLinePlaceholder":1120},[1082,2485,2486],{"class":1084,"line":1289},[1082,2487,1801],{"class":1088},[1082,2489,2490,2492,2494,2496,2498],{"class":1084,"line":1301},[1082,2491,1807],{"class":1133},[1082,2493,1138],{"class":1137},[1082,2495,1191],{"class":1190},[1082,2497,1814],{"class":1194},[1082,2499,1198],{"class":1190},[1082,2501,2502,2504,2506,2508,2510],{"class":1084,"line":1313},[1082,2503,1822],{"class":1133},[1082,2505,1138],{"class":1137},[1082,2507,1191],{"class":1190},[1082,2509,1829],{"class":1194},[1082,2511,1198],{"class":1190},[1082,2513,2514,2516,2518],{"class":1084,"line":1325},[1082,2515,1837],{"class":1133},[1082,2517,1138],{"class":1137},[1082,2519,1221],{"class":1220},[1082,2521,2522,2525,2527,2529],{"class":1084,"line":1337},[1082,2523,2524],{"class":1133},"USE_L10N",[1082,2526,1138],{"class":1137},[1082,2528,1572],{"class":1220},[1082,2530,2531],{"class":1088},"  # Deprecated in Django 4.0+\n",[1082,2533,2534,2536,2538],{"class":1084,"line":1343},[1082,2535,1847],{"class":1133},[1082,2537,1138],{"class":1137},[1082,2539,1221],{"class":1220},[1082,2541,2542],{"class":1084,"line":1355},[1082,2543,1121],{"emptyLinePlaceholder":1120},[1082,2545,2546],{"class":1084,"line":1361},[1082,2547,2548],{"class":1088},"# Static files\n",[1082,2550,2551,2553,2555],{"class":1084,"line":1366},[1082,2552,1868],{"class":1133},[1082,2554,1138],{"class":1137},[1082,2556,2557],{"class":1220}," None\n",[1082,2559,2560,2562,2564],{"class":1084,"line":1376},[1082,2561,1906],{"class":1133},[1082,2563,1138],{"class":1137},[1082,2565,2557],{"class":1220},[1082,2567,2568],{"class":1084,"line":1388},[1082,2569,1121],{"emptyLinePlaceholder":1120},[1082,2571,2572],{"class":1084,"line":1400},[1082,2573,2574],{"class":1088},"# Sessions\n",[1082,2576,2577,2580,2582,2584,2587],{"class":1084,"line":1412},[1082,2578,2579],{"class":1133},"SESSION_ENGINE",[1082,2581,1138],{"class":1137},[1082,2583,1191],{"class":1190},[1082,2585,2586],{"class":1194},"django.contrib.sessions.backends.db",[1082,2588,1198],{"class":1190},[1082,2590,2591,2593,2595,2599],{"class":1084,"line":1424},[1082,2592,2351],{"class":1133},[1082,2594,1138],{"class":1137},[1082,2596,2598],{"class":2597},"s7CZa"," 1209600",[1082,2600,2601],{"class":1088},"  # 2 weeks\n",[1082,2603,2604,2607,2609,2611,2614],{"class":1084,"line":1436},[1082,2605,2606],{"class":1133},"SESSION_COOKIE_NAME",[1082,2608,1138],{"class":1137},[1082,2610,1191],{"class":1190},[1082,2612,2613],{"class":1194},"sessionid",[1082,2615,1198],{"class":1190},[1082,2617,2618],{"class":1084,"line":1448},[1082,2619,1121],{"emptyLinePlaceholder":1120},[1082,2621,2622],{"class":1084,"line":1460},[1082,2623,2624],{"class":1088},"# CSRF\n",[1082,2626,2627,2630,2632,2634,2637],{"class":1084,"line":1465},[1082,2628,2629],{"class":1133},"CSRF_COOKIE_NAME",[1082,2631,1138],{"class":1137},[1082,2633,1191],{"class":1190},[1082,2635,2636],{"class":1194},"csrftoken",[1082,2638,1198],{"class":1190},[1082,2640,2641,2644,2646,2649],{"class":1084,"line":1470},[1082,2642,2643],{"class":1133},"CSRF_COOKIE_AGE",[1082,2645,1138],{"class":1137},[1082,2647,2648],{"class":2597}," 31449600",[1082,2650,2651],{"class":1088},"  # 1 year\n",[1082,2653,2654],{"class":1084,"line":1485},[1082,2655,1121],{"emptyLinePlaceholder":1120},[1082,2657,2658],{"class":1084,"line":1490},[1082,2659,2660],{"class":1088},"# File uploads\n",[1082,2662,2663,2666,2668,2671],{"class":1084,"line":1500},[1082,2664,2665],{"class":1133},"FILE_UPLOAD_MAX_MEMORY_SIZE",[1082,2667,1138],{"class":1137},[1082,2669,2670],{"class":2597}," 2621440",[1082,2672,2673],{"class":1088},"  # 2.5 MB\n",[1082,2675,2676,2679,2681,2683],{"class":1084,"line":1506},[1082,2677,2678],{"class":1133},"DATA_UPLOAD_MAX_MEMORY_SIZE",[1082,2680,1138],{"class":1137},[1082,2682,2670],{"class":2597},[1082,2684,2673],{"class":1088},[1030,2686,2688],{"id":2687},"using-settings-in-python-code","Using Settings in Python Code",[1035,2690,2692],{"id":2691},"accessing-settings","Accessing Settings",[1072,2694,2696],{"className":1074,"code":2695,"language":1076,"meta":1077,"style":1077},"from django.conf import settings\n\ndef my_view(request):\n    # Access settings values\n    if settings.DEBUG:\n        print(\"Debug mode is enabled\")\n    \n    # Use settings in logic\n    max_file_size = settings.FILE_UPLOAD_MAX_MEMORY_SIZE\n    \n    # Check if setting exists\n    if hasattr(settings, 'CUSTOM_SETTING'):\n        custom_value = settings.CUSTOM_SETTING\n    \n    # Get setting with default\n    api_timeout = getattr(settings, 'API_TIMEOUT', 30)\n    \n    return render(request, 'template.html', {\n        'debug_mode': settings.DEBUG,\n        'site_name': getattr(settings, 'SITE_NAME', 'My Site'),\n    })\n\n# In models\nfrom django.conf import settings\nfrom django.db import models\n\nclass UserProfile(models.Model):\n    user = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)\n    avatar = models.ImageField(upload_to='avatars/')\n    \n    def get_avatar_url(self):\n        if self.avatar:\n            return f\"{settings.MEDIA_URL}{self.avatar}\"\n        return f\"{settings.STATIC_URL}images/default-avatar.png\"\n\n# In forms\nfrom django import forms\nfrom django.conf import settings\n\nclass ContactForm(forms.Form):\n    message = forms.CharField(\n        widget=forms.Textarea,\n        max_length=getattr(settings, 'MAX_MESSAGE_LENGTH', 1000)\n    )\n    \n    def clean_message(self):\n        message = self.cleaned_data['message']\n        min_length = getattr(settings, 'MIN_MESSAGE_LENGTH', 10)\n        \n        if len(message) \u003C min_length:\n            raise forms.ValidationError(\n                f\"Message must be at least {min_length} characters long.\"\n            )\n        \n        return message\n",[1079,2697,2698,2712,2716,2734,2739,2754,2771,2776,2781,2795,2799,2804,2826,2840,2844,2849,2879,2883,2908,2927,2965,2970,2974,2979,2993,3009,3013,3034,3075,3105,3109,3125,3140,3175,3197,3201,3206,3218,3232,3236,3255,3273,3289,3319,3324,3328,3341,3367,3396,3401,3422,3436,3454,3459,3463],{"__ignoreMap":1077},[1082,2699,2700,2702,2704,2706,2708,2710],{"class":1084,"line":1085},[1082,2701,1106],{"class":1095},[1082,2703,2161],{"class":1099},[1082,2705,1165],{"class":1137},[1082,2707,2166],{"class":1099},[1082,2709,1096],{"class":1095},[1082,2711,2171],{"class":1099},[1082,2713,2714],{"class":1084,"line":1092},[1082,2715,1121],{"emptyLinePlaceholder":1120},[1082,2717,2718,2721,2725,2727,2731],{"class":1084,"line":1103},[1082,2719,2720],{"class":2021},"def",[1082,2722,2724],{"class":2723},"sljsM"," my_view",[1082,2726,1145],{"class":1137},[1082,2728,2730],{"class":2729},"sCyAa","request",[1082,2732,2733],{"class":1137},"):\n",[1082,2735,2736],{"class":1084,"line":1117},[1082,2737,2738],{"class":1088},"    # Access settings values\n",[1082,2740,2741,2744,2747,2749,2751],{"class":1084,"line":1124},[1082,2742,2743],{"class":1095},"    if",[1082,2745,2746],{"class":1099}," settings",[1082,2748,1165],{"class":1137},[1082,2750,1215],{"class":2332},[1082,2752,2753],{"class":1137},":\n",[1082,2755,2756,2759,2761,2764,2767,2769],{"class":1084,"line":1130},[1082,2757,2758],{"class":2296},"        print",[1082,2760,1145],{"class":1137},[1082,2762,2763],{"class":1190},"\"",[1082,2765,2766],{"class":1194},"Debug mode is enabled",[1082,2768,2763],{"class":1190},[1082,2770,2216],{"class":1137},[1082,2772,2773],{"class":1084,"line":1171},[1082,2774,2775],{"class":1099},"    \n",[1082,2777,2778],{"class":1084,"line":1176},[1082,2779,2780],{"class":1088},"    # Use settings in logic\n",[1082,2782,2783,2786,2788,2790,2792],{"class":1084,"line":1182},[1082,2784,2785],{"class":1099},"    max_file_size ",[1082,2787,2029],{"class":1137},[1082,2789,2746],{"class":1099},[1082,2791,1165],{"class":1137},[1082,2793,2794],{"class":2332},"FILE_UPLOAD_MAX_MEMORY_SIZE\n",[1082,2796,2797],{"class":1084,"line":1201},[1082,2798,2775],{"class":1099},[1082,2800,2801],{"class":1084,"line":1206},[1082,2802,2803],{"class":1088},"    # Check if setting exists\n",[1082,2805,2806,2808,2811,2813,2815,2817,2819,2822,2824],{"class":1084,"line":1212},[1082,2807,2743],{"class":1095},[1082,2809,2810],{"class":2296}," hasattr",[1082,2812,1145],{"class":1137},[1082,2814,2061],{"class":1141},[1082,2816,2206],{"class":1137},[1082,2818,1191],{"class":1190},[1082,2820,2821],{"class":1194},"CUSTOM_SETTING",[1082,2823,1271],{"class":1190},[1082,2825,2733],{"class":1137},[1082,2827,2828,2831,2833,2835,2837],{"class":1084,"line":1224},[1082,2829,2830],{"class":1099},"        custom_value ",[1082,2832,2029],{"class":1137},[1082,2834,2746],{"class":1099},[1082,2836,1165],{"class":1137},[1082,2838,2839],{"class":2332},"CUSTOM_SETTING\n",[1082,2841,2842],{"class":1084,"line":1229},[1082,2843,2775],{"class":1099},[1082,2845,2846],{"class":1084,"line":1240},[1082,2847,2848],{"class":1088},"    # Get setting with default\n",[1082,2850,2851,2854,2856,2859,2861,2863,2865,2867,2870,2872,2874,2877],{"class":1084,"line":1245},[1082,2852,2853],{"class":1099},"    api_timeout ",[1082,2855,2029],{"class":1137},[1082,2857,2858],{"class":2296}," getattr",[1082,2860,1145],{"class":1137},[1082,2862,2061],{"class":1141},[1082,2864,2206],{"class":1137},[1082,2866,1191],{"class":1190},[1082,2868,2869],{"class":1194},"API_TIMEOUT",[1082,2871,1271],{"class":1190},[1082,2873,2206],{"class":1137},[1082,2875,2876],{"class":2597}," 30",[1082,2878,2216],{"class":1137},[1082,2880,2881],{"class":1084,"line":1251},[1082,2882,2775],{"class":1099},[1082,2884,2885,2888,2891,2893,2895,2897,2899,2902,2904,2906],{"class":1084,"line":1262},[1082,2886,2887],{"class":1095},"    return",[1082,2889,2890],{"class":1141}," render",[1082,2892,1145],{"class":1137},[1082,2894,2730],{"class":1141},[1082,2896,2206],{"class":1137},[1082,2898,1191],{"class":1190},[1082,2900,2901],{"class":1194},"template.html",[1082,2903,1271],{"class":1190},[1082,2905,2206],{"class":1137},[1082,2907,1589],{"class":1137},[1082,2909,2910,2912,2915,2917,2919,2921,2923,2925],{"class":1084,"line":1277},[1082,2911,1509],{"class":1190},[1082,2913,2914],{"class":1194},"debug_mode",[1082,2916,1271],{"class":1190},[1082,2918,1517],{"class":1137},[1082,2920,2746],{"class":1141},[1082,2922,1165],{"class":1137},[1082,2924,1215],{"class":2332},[1082,2926,1274],{"class":1137},[1082,2928,2929,2931,2934,2936,2938,2940,2942,2944,2946,2948,2951,2953,2955,2957,2960,2962],{"class":1084,"line":1289},[1082,2930,1509],{"class":1190},[1082,2932,2933],{"class":1194},"site_name",[1082,2935,1271],{"class":1190},[1082,2937,1517],{"class":1137},[1082,2939,2858],{"class":2296},[1082,2941,1145],{"class":1137},[1082,2943,2061],{"class":1141},[1082,2945,2206],{"class":1137},[1082,2947,1191],{"class":1190},[1082,2949,2950],{"class":1194},"SITE_NAME",[1082,2952,1271],{"class":1190},[1082,2954,2206],{"class":1137},[1082,2956,1191],{"class":1190},[1082,2958,2959],{"class":1194},"My Site",[1082,2961,1271],{"class":1190},[1082,2963,2964],{"class":1137},"),\n",[1082,2966,2967],{"class":1084,"line":1301},[1082,2968,2969],{"class":1137},"    })\n",[1082,2971,2972],{"class":1084,"line":1313},[1082,2973,1121],{"emptyLinePlaceholder":1120},[1082,2975,2976],{"class":1084,"line":1325},[1082,2977,2978],{"class":1088},"# In models\n",[1082,2980,2981,2983,2985,2987,2989,2991],{"class":1084,"line":1337},[1082,2982,1106],{"class":1095},[1082,2984,2161],{"class":1099},[1082,2986,1165],{"class":1137},[1082,2988,2166],{"class":1099},[1082,2990,1096],{"class":1095},[1082,2992,2171],{"class":1099},[1082,2994,2995,2997,2999,3001,3004,3006],{"class":1084,"line":1343},[1082,2996,1106],{"class":1095},[1082,2998,2161],{"class":1099},[1082,3000,1165],{"class":1137},[1082,3002,3003],{"class":1099},"db ",[1082,3005,1096],{"class":1095},[1082,3007,3008],{"class":1099}," models\n",[1082,3010,3011],{"class":1084,"line":1355},[1082,3012,1121],{"emptyLinePlaceholder":1120},[1082,3014,3015,3018,3022,3024,3027,3029,3032],{"class":1084,"line":1361},[1082,3016,3017],{"class":2021},"class",[1082,3019,3021],{"class":3020},"sD-vU"," UserProfile",[1082,3023,1145],{"class":1137},[1082,3025,3026],{"class":2085},"models",[1082,3028,1165],{"class":1137},[1082,3030,3031],{"class":2085},"Model",[1082,3033,2733],{"class":1137},[1082,3035,3036,3039,3041,3044,3046,3049,3051,3053,3055,3058,3060,3064,3066,3068,3070,3073],{"class":1084,"line":1366},[1082,3037,3038],{"class":1099},"    user ",[1082,3040,2029],{"class":1137},[1082,3042,3043],{"class":1099}," models",[1082,3045,1165],{"class":1137},[1082,3047,3048],{"class":1141},"OneToOneField",[1082,3050,1145],{"class":1137},[1082,3052,2061],{"class":1141},[1082,3054,1165],{"class":1137},[1082,3056,3057],{"class":2332},"AUTH_USER_MODEL",[1082,3059,2206],{"class":1137},[1082,3061,3063],{"class":3062},"sqOPj"," on_delete",[1082,3065,2029],{"class":1137},[1082,3067,3026],{"class":1141},[1082,3069,1165],{"class":1137},[1082,3071,3072],{"class":2332},"CASCADE",[1082,3074,2216],{"class":1137},[1082,3076,3077,3080,3082,3084,3086,3089,3091,3094,3096,3098,3101,3103],{"class":1084,"line":1376},[1082,3078,3079],{"class":1099},"    avatar ",[1082,3081,2029],{"class":1137},[1082,3083,3043],{"class":1099},[1082,3085,1165],{"class":1137},[1082,3087,3088],{"class":1141},"ImageField",[1082,3090,1145],{"class":1137},[1082,3092,3093],{"class":3062},"upload_to",[1082,3095,2029],{"class":1137},[1082,3097,1271],{"class":1190},[1082,3099,3100],{"class":1194},"avatars/",[1082,3102,1271],{"class":1190},[1082,3104,2216],{"class":1137},[1082,3106,3107],{"class":1084,"line":1388},[1082,3108,2775],{"class":1099},[1082,3110,3111,3114,3117,3119,3123],{"class":1084,"line":1400},[1082,3112,3113],{"class":2021},"    def",[1082,3115,3116],{"class":2723}," get_avatar_url",[1082,3118,1145],{"class":1137},[1082,3120,3122],{"class":3121},"sRjD_","self",[1082,3124,2733],{"class":1137},[1082,3126,3127,3130,3133,3135,3138],{"class":1084,"line":1412},[1082,3128,3129],{"class":1095},"        if",[1082,3131,3132],{"class":1133}," self",[1082,3134,1165],{"class":1137},[1082,3136,3137],{"class":1161},"avatar",[1082,3139,2753],{"class":1137},[1082,3141,3142,3145,3148,3150,3154,3156,3158,3160,3163,3165,3167,3169,3172],{"class":1084,"line":1424},[1082,3143,3144],{"class":1095},"            return",[1082,3146,3147],{"class":2021}," f",[1082,3149,2763],{"class":1194},[1082,3151,3153],{"class":3152},"s3h35","{",[1082,3155,2061],{"class":1099},[1082,3157,1165],{"class":1137},[1082,3159,1936],{"class":2332},[1082,3161,3162],{"class":3152},"}{",[1082,3164,3122],{"class":1133},[1082,3166,1165],{"class":1137},[1082,3168,3137],{"class":1161},[1082,3170,3171],{"class":3152},"}",[1082,3173,3174],{"class":1194},"\"\n",[1082,3176,3177,3180,3182,3184,3186,3188,3190,3192,3194],{"class":1084,"line":1436},[1082,3178,3179],{"class":1095},"        return",[1082,3181,3147],{"class":2021},[1082,3183,2763],{"class":1194},[1082,3185,3153],{"class":3152},[1082,3187,2061],{"class":1099},[1082,3189,1165],{"class":1137},[1082,3191,1868],{"class":2332},[1082,3193,3171],{"class":3152},[1082,3195,3196],{"class":1194},"images/default-avatar.png\"\n",[1082,3198,3199],{"class":1084,"line":1448},[1082,3200,1121],{"emptyLinePlaceholder":1120},[1082,3202,3203],{"class":1084,"line":1460},[1082,3204,3205],{"class":1088},"# In forms\n",[1082,3207,3208,3210,3213,3215],{"class":1084,"line":1465},[1082,3209,1106],{"class":1095},[1082,3211,3212],{"class":1099}," django ",[1082,3214,1096],{"class":1095},[1082,3216,3217],{"class":1099}," forms\n",[1082,3219,3220,3222,3224,3226,3228,3230],{"class":1084,"line":1470},[1082,3221,1106],{"class":1095},[1082,3223,2161],{"class":1099},[1082,3225,1165],{"class":1137},[1082,3227,2166],{"class":1099},[1082,3229,1096],{"class":1095},[1082,3231,2171],{"class":1099},[1082,3233,3234],{"class":1084,"line":1485},[1082,3235,1121],{"emptyLinePlaceholder":1120},[1082,3237,3238,3240,3243,3245,3248,3250,3253],{"class":1084,"line":1490},[1082,3239,3017],{"class":2021},[1082,3241,3242],{"class":3020}," ContactForm",[1082,3244,1145],{"class":1137},[1082,3246,3247],{"class":2085},"forms",[1082,3249,1165],{"class":1137},[1082,3251,3252],{"class":2085},"Form",[1082,3254,2733],{"class":1137},[1082,3256,3257,3260,3262,3265,3267,3270],{"class":1084,"line":1500},[1082,3258,3259],{"class":1099},"    message ",[1082,3261,2029],{"class":1137},[1082,3263,3264],{"class":1099}," forms",[1082,3266,1165],{"class":1137},[1082,3268,3269],{"class":1141},"CharField",[1082,3271,3272],{"class":1137},"(\n",[1082,3274,3275,3278,3280,3282,3284,3287],{"class":1084,"line":1506},[1082,3276,3277],{"class":3062},"        widget",[1082,3279,2029],{"class":1137},[1082,3281,3247],{"class":1141},[1082,3283,1165],{"class":1137},[1082,3285,3286],{"class":1161},"Textarea",[1082,3288,1274],{"class":1137},[1082,3290,3291,3294,3296,3299,3301,3303,3305,3307,3310,3312,3314,3317],{"class":1084,"line":1529},[1082,3292,3293],{"class":3062},"        max_length",[1082,3295,2029],{"class":1137},[1082,3297,3298],{"class":2296},"getattr",[1082,3300,1145],{"class":1137},[1082,3302,2061],{"class":1141},[1082,3304,2206],{"class":1137},[1082,3306,1191],{"class":1190},[1082,3308,3309],{"class":1194},"MAX_MESSAGE_LENGTH",[1082,3311,1271],{"class":1190},[1082,3313,2206],{"class":1137},[1082,3315,3316],{"class":2597}," 1000",[1082,3318,2216],{"class":1137},[1082,3320,3321],{"class":1084,"line":1560},[1082,3322,3323],{"class":1137},"    )\n",[1082,3325,3326],{"class":1084,"line":1577},[1082,3327,2775],{"class":1099},[1082,3329,3330,3332,3335,3337,3339],{"class":1084,"line":1592},[1082,3331,3113],{"class":2021},[1082,3333,3334],{"class":2723}," clean_message",[1082,3336,1145],{"class":1137},[1082,3338,3122],{"class":3121},[1082,3340,2733],{"class":1137},[1082,3342,3343,3346,3348,3350,3352,3355,3358,3360,3363,3365],{"class":1084,"line":1607},[1082,3344,3345],{"class":1099},"        message ",[1082,3347,2029],{"class":1137},[1082,3349,3132],{"class":1133},[1082,3351,1165],{"class":1137},[1082,3353,3354],{"class":1161},"cleaned_data",[1082,3356,3357],{"class":1137},"[",[1082,3359,1271],{"class":1190},[1082,3361,3362],{"class":1194},"message",[1082,3364,1271],{"class":1190},[1082,3366,1358],{"class":1137},[1082,3368,3369,3372,3374,3376,3378,3380,3382,3384,3387,3389,3391,3394],{"class":1084,"line":1620},[1082,3370,3371],{"class":1099},"        min_length ",[1082,3373,2029],{"class":1137},[1082,3375,2858],{"class":2296},[1082,3377,1145],{"class":1137},[1082,3379,2061],{"class":1141},[1082,3381,2206],{"class":1137},[1082,3383,1191],{"class":1190},[1082,3385,3386],{"class":1194},"MIN_MESSAGE_LENGTH",[1082,3388,1271],{"class":1190},[1082,3390,2206],{"class":1137},[1082,3392,3393],{"class":2597}," 10",[1082,3395,2216],{"class":1137},[1082,3397,3398],{"class":1084,"line":1632},[1082,3399,3400],{"class":1099},"        \n",[1082,3402,3403,3405,3408,3410,3412,3414,3417,3420],{"class":1084,"line":1644},[1082,3404,3129],{"class":1095},[1082,3406,3407],{"class":2296}," len",[1082,3409,1145],{"class":1137},[1082,3411,3362],{"class":1141},[1082,3413,2335],{"class":1137},[1082,3415,3416],{"class":1546}," \u003C",[1082,3418,3419],{"class":1099}," min_length",[1082,3421,2753],{"class":1137},[1082,3423,3424,3427,3429,3431,3434],{"class":1084,"line":1656},[1082,3425,3426],{"class":1095},"            raise",[1082,3428,3264],{"class":1099},[1082,3430,1165],{"class":1137},[1082,3432,3433],{"class":1141},"ValidationError",[1082,3435,3272],{"class":1137},[1082,3437,3438,3441,3444,3446,3449,3451],{"class":1084,"line":1662},[1082,3439,3440],{"class":2021},"                f",[1082,3442,3443],{"class":1194},"\"Message must be at least ",[1082,3445,3153],{"class":3152},[1082,3447,3448],{"class":1141},"min_length",[1082,3450,3171],{"class":3152},[1082,3452,3453],{"class":1194}," characters long.\"\n",[1082,3455,3456],{"class":1084,"line":1668},[1082,3457,3458],{"class":1137},"            )\n",[1082,3460,3461],{"class":1084,"line":1674},[1082,3462,3400],{"class":1099},[1082,3464,3465,3467],{"class":1084,"line":1679},[1082,3466,3179],{"class":1095},[1082,3468,3469],{"class":1099}," message\n",[1035,3471,3473],{"id":3472},"settings-in-templates","Settings in Templates",[1072,3475,3477],{"className":1074,"code":3476,"language":1076,"meta":1077,"style":1077},"# Add to context processors (settings.py)\nTEMPLATES = [\n    {\n        'BACKEND': 'django.template.backends.django.DjangoTemplates',\n        'OPTIONS': {\n            'context_processors': [\n                # ... other processors\n                'myproject.context_processors.settings_context',\n            ],\n        },\n    },\n]\n\n# context_processors.py\nfrom django.conf import settings\n\ndef settings_context(request):\n    \"\"\"Add selected settings to template context\"\"\"\n    return {\n        'DEBUG': settings.DEBUG,\n        'SITE_NAME': getattr(settings, 'SITE_NAME', 'My Site'),\n        'CONTACT_EMAIL': getattr(settings, 'CONTACT_EMAIL', ''),\n        'GOOGLE_ANALYTICS_ID': getattr(settings, 'GOOGLE_ANALYTICS_ID', ''),\n    }\n",[1079,3478,3479,3484,3492,3496,3514,3526,3538,3543,3554,3558,3562,3566,3570,3574,3579,3593,3597,3610,3623,3629,3647,3681,3713,3744],{"__ignoreMap":1077},[1082,3480,3481],{"class":1084,"line":1085},[1082,3482,3483],{"class":1088},"# Add to context processors (settings.py)\n",[1082,3485,3486,3488,3490],{"class":1084,"line":1092},[1082,3487,1493],{"class":1133},[1082,3489,1138],{"class":1137},[1082,3491,1259],{"class":1137},[1082,3493,3494],{"class":1084,"line":1103},[1082,3495,1503],{"class":1137},[1082,3497,3498,3500,3502,3504,3506,3508,3510,3512],{"class":1084,"line":1117},[1082,3499,1509],{"class":1190},[1082,3501,1512],{"class":1194},[1082,3503,1271],{"class":1190},[1082,3505,1517],{"class":1137},[1082,3507,1191],{"class":1190},[1082,3509,1522],{"class":1194},[1082,3511,1271],{"class":1190},[1082,3513,1274],{"class":1137},[1082,3515,3516,3518,3520,3522,3524],{"class":1084,"line":1124},[1082,3517,1509],{"class":1190},[1082,3519,1582],{"class":1194},[1082,3521,1271],{"class":1190},[1082,3523,1517],{"class":1137},[1082,3525,1589],{"class":1137},[1082,3527,3528,3530,3532,3534,3536],{"class":1084,"line":1130},[1082,3529,1595],{"class":1190},[1082,3531,1598],{"class":1194},[1082,3533,1271],{"class":1190},[1082,3535,1517],{"class":1137},[1082,3537,1259],{"class":1137},[1082,3539,3540],{"class":1084,"line":1171},[1082,3541,3542],{"class":1088},"                # ... other processors\n",[1082,3544,3545,3547,3550,3552],{"class":1084,"line":1176},[1082,3546,1610],{"class":1190},[1082,3548,3549],{"class":1194},"myproject.context_processors.settings_context",[1082,3551,1271],{"class":1190},[1082,3553,1274],{"class":1137},[1082,3555,3556],{"class":1084,"line":1182},[1082,3557,1659],{"class":1137},[1082,3559,3560],{"class":1084,"line":1201},[1082,3561,1665],{"class":1137},[1082,3563,3564],{"class":1084,"line":1206},[1082,3565,1671],{"class":1137},[1082,3567,3568],{"class":1084,"line":1212},[1082,3569,1358],{"class":1137},[1082,3571,3572],{"class":1084,"line":1224},[1082,3573,1121],{"emptyLinePlaceholder":1120},[1082,3575,3576],{"class":1084,"line":1229},[1082,3577,3578],{"class":1088},"# context_processors.py\n",[1082,3580,3581,3583,3585,3587,3589,3591],{"class":1084,"line":1240},[1082,3582,1106],{"class":1095},[1082,3584,2161],{"class":1099},[1082,3586,1165],{"class":1137},[1082,3588,2166],{"class":1099},[1082,3590,1096],{"class":1095},[1082,3592,2171],{"class":1099},[1082,3594,3595],{"class":1084,"line":1245},[1082,3596,1121],{"emptyLinePlaceholder":1120},[1082,3598,3599,3601,3604,3606,3608],{"class":1084,"line":1251},[1082,3600,2720],{"class":2021},[1082,3602,3603],{"class":2723}," settings_context",[1082,3605,1145],{"class":1137},[1082,3607,2730],{"class":2729},[1082,3609,2733],{"class":1137},[1082,3611,3612,3616,3620],{"class":1084,"line":1262},[1082,3613,3615],{"class":3614},"sm7ve","    \"\"\"",[1082,3617,3619],{"class":3618},"sVyVU","Add selected settings to template context",[1082,3621,3622],{"class":3614},"\"\"\"\n",[1082,3624,3625,3627],{"class":1084,"line":1277},[1082,3626,2887],{"class":1095},[1082,3628,1589],{"class":1137},[1082,3630,3631,3633,3635,3637,3639,3641,3643,3645],{"class":1084,"line":1289},[1082,3632,1509],{"class":1190},[1082,3634,1215],{"class":1194},[1082,3636,1271],{"class":1190},[1082,3638,1517],{"class":1137},[1082,3640,2746],{"class":1099},[1082,3642,1165],{"class":1137},[1082,3644,1215],{"class":2332},[1082,3646,1274],{"class":1137},[1082,3648,3649,3651,3653,3655,3657,3659,3661,3663,3665,3667,3669,3671,3673,3675,3677,3679],{"class":1084,"line":1301},[1082,3650,1509],{"class":1190},[1082,3652,2950],{"class":1194},[1082,3654,1271],{"class":1190},[1082,3656,1517],{"class":1137},[1082,3658,2858],{"class":2296},[1082,3660,1145],{"class":1137},[1082,3662,2061],{"class":1141},[1082,3664,2206],{"class":1137},[1082,3666,1191],{"class":1190},[1082,3668,2950],{"class":1194},[1082,3670,1271],{"class":1190},[1082,3672,2206],{"class":1137},[1082,3674,1191],{"class":1190},[1082,3676,2959],{"class":1194},[1082,3678,1271],{"class":1190},[1082,3680,2964],{"class":1137},[1082,3682,3683,3685,3688,3690,3692,3694,3696,3698,3700,3702,3704,3706,3708,3711],{"class":1084,"line":1313},[1082,3684,1509],{"class":1190},[1082,3686,3687],{"class":1194},"CONTACT_EMAIL",[1082,3689,1271],{"class":1190},[1082,3691,1517],{"class":1137},[1082,3693,2858],{"class":2296},[1082,3695,1145],{"class":1137},[1082,3697,2061],{"class":1141},[1082,3699,2206],{"class":1137},[1082,3701,1191],{"class":1190},[1082,3703,3687],{"class":1194},[1082,3705,1271],{"class":1190},[1082,3707,2206],{"class":1137},[1082,3709,3710],{"class":1190}," ''",[1082,3712,2964],{"class":1137},[1082,3714,3715,3717,3720,3722,3724,3726,3728,3730,3732,3734,3736,3738,3740,3742],{"class":1084,"line":1325},[1082,3716,1509],{"class":1190},[1082,3718,3719],{"class":1194},"GOOGLE_ANALYTICS_ID",[1082,3721,1271],{"class":1190},[1082,3723,1517],{"class":1137},[1082,3725,2858],{"class":2296},[1082,3727,1145],{"class":1137},[1082,3729,2061],{"class":1141},[1082,3731,2206],{"class":1137},[1082,3733,1191],{"class":1190},[1082,3735,3719],{"class":1194},[1082,3737,1271],{"class":1190},[1082,3739,2206],{"class":1137},[1082,3741,3710],{"class":1190},[1082,3743,2964],{"class":1137},[1082,3745,3746],{"class":1084,"line":1337},[1082,3747,1784],{"class":1137},[1072,3749,3753],{"className":3750,"code":3751,"language":3752,"meta":1077,"style":1077},"language-html shiki shiki-themes material-theme-lighter vitesse-light vitesse-dark","\u003C!-- In templates -->\n{% if DEBUG %}\n    \u003Cdiv class=\"debug-toolbar\">Debug mode is active\u003C/div>\n{% endif %}\n\n\u003Ctitle>{{ SITE_NAME }} - Welcome\u003C/title>\n\n{% if GOOGLE_ANALYTICS_ID %}\n    \u003C!-- Google Analytics code -->\n    \u003Cscript async src=\"https://www.googletagmanager.com/gtag/js?id={{ GOOGLE_ANALYTICS_ID }}\">\u003C/script>\n{% endif %}\n","html",[1079,3754,3755,3760,3765,3801,3806,3810,3829,3833,3838,3843,3872],{"__ignoreMap":1077},[1082,3756,3757],{"class":1084,"line":1085},[1082,3758,3759],{"class":1088},"\u003C!-- In templates -->\n",[1082,3761,3762],{"class":1084,"line":1092},[1082,3763,3764],{"class":1099},"{% if DEBUG %}\n",[1082,3766,3767,3770,3774,3778,3780,3782,3785,3787,3790,3793,3796,3798],{"class":1084,"line":1103},[1082,3768,3769],{"class":1137},"    \u003C",[1082,3771,3773],{"class":3772},"sJFLg","div",[1082,3775,3777],{"class":3776},"s5q8q"," class",[1082,3779,2029],{"class":1137},[1082,3781,2763],{"class":1190},[1082,3783,3784],{"class":1194},"debug-toolbar",[1082,3786,2763],{"class":1190},[1082,3788,3789],{"class":1137},">",[1082,3791,3792],{"class":1099},"Debug mode is active",[1082,3794,3795],{"class":1137},"\u003C/",[1082,3797,3773],{"class":3772},[1082,3799,3800],{"class":1137},">\n",[1082,3802,3803],{"class":1084,"line":1117},[1082,3804,3805],{"class":1099},"{% endif %}\n",[1082,3807,3808],{"class":1084,"line":1124},[1082,3809,1121],{"emptyLinePlaceholder":1120},[1082,3811,3812,3815,3818,3820,3823,3825,3827],{"class":1084,"line":1130},[1082,3813,3814],{"class":1137},"\u003C",[1082,3816,3817],{"class":3772},"title",[1082,3819,3789],{"class":1137},[1082,3821,3822],{"class":1099},"{{ SITE_NAME }} - Welcome",[1082,3824,3795],{"class":1137},[1082,3826,3817],{"class":3772},[1082,3828,3800],{"class":1137},[1082,3830,3831],{"class":1084,"line":1171},[1082,3832,1121],{"emptyLinePlaceholder":1120},[1082,3834,3835],{"class":1084,"line":1176},[1082,3836,3837],{"class":1099},"{% if GOOGLE_ANALYTICS_ID %}\n",[1082,3839,3840],{"class":1084,"line":1182},[1082,3841,3842],{"class":1088},"    \u003C!-- Google Analytics code -->\n",[1082,3844,3845,3847,3850,3853,3856,3858,3860,3863,3865,3868,3870],{"class":1084,"line":1201},[1082,3846,3769],{"class":1137},[1082,3848,3849],{"class":3772},"script",[1082,3851,3852],{"class":3776}," async",[1082,3854,3855],{"class":3776}," src",[1082,3857,2029],{"class":1137},[1082,3859,2763],{"class":1190},[1082,3861,3862],{"class":1194},"https://www.googletagmanager.com/gtag/js?id={{ GOOGLE_ANALYTICS_ID }}",[1082,3864,2763],{"class":1190},[1082,3866,3867],{"class":1137},">\u003C/",[1082,3869,3849],{"class":3772},[1082,3871,3800],{"class":1137},[1082,3873,3874],{"class":1084,"line":1206},[1082,3875,3805],{"class":1099},[1030,3877,3879],{"id":3878},"altering-settings-at-runtime","Altering Settings at Runtime",[1035,3881,3883],{"id":3882},"dynamic-settings-configuration","Dynamic Settings Configuration",[1072,3885,3887],{"className":1074,"code":3886,"language":1076,"meta":1077,"style":1077},"# settings.py - Environment-based configuration\nimport os\nfrom pathlib import Path\n\nBASE_DIR = Path(__file__).resolve().parent.parent\n\n# Environment-specific settings\nENVIRONMENT = os.getenv('DJANGO_ENVIRONMENT', 'development')\n\nif ENVIRONMENT == 'production':\n    DEBUG = False\n    ALLOWED_HOSTS = ['yourdomain.com', 'www.yourdomain.com']\n    \n    # Production database\n    DATABASES = {\n        'default': {\n            'ENGINE': 'django.db.backends.postgresql',\n            'NAME': os.getenv('DB_NAME'),\n            'USER': os.getenv('DB_USER'),\n            'PASSWORD': os.getenv('DB_PASSWORD'),\n            'HOST': os.getenv('DB_HOST', 'localhost'),\n            'PORT': os.getenv('DB_PORT', '5432'),\n        }\n    }\n    \n    # Production static files\n    STATIC_ROOT = '/var/www/static/'\n    MEDIA_ROOT = '/var/www/media/'\n    \nelif ENVIRONMENT == 'staging':\n    DEBUG = True\n    ALLOWED_HOSTS = ['staging.yourdomain.com']\n    \n    # Staging database\n    DATABASES = {\n        'default': {\n            'ENGINE': 'django.db.backends.postgresql',\n            'NAME': 'staging_db',\n            'USER': 'staging_user',\n            'PASSWORD': os.getenv('STAGING_DB_PASSWORD'),\n            'HOST': 'localhost',\n            'PORT': '5432',\n        }\n    }\n    \nelse:  # development\n    DEBUG = True\n    ALLOWED_HOSTS = ['localhost', '127.0.0.1']\n    \n    # Development database\n    DATABASES = {\n        'default': {\n            'ENGINE': 'django.db.backends.sqlite3',\n            'NAME': BASE_DIR / 'db.sqlite3',\n        }\n    }\n\n# Feature flags\nFEATURE_FLAGS = {\n    'NEW_DASHBOARD': os.getenv('FEATURE_NEW_DASHBOARD', 'false').lower() == 'true',\n    'BETA_FEATURES': os.getenv('FEATURE_BETA', 'false').lower() == 'true',\n    'MAINTENANCE_MODE': os.getenv('MAINTENANCE_MODE', 'false').lower() == 'true',\n}\n\n# Dynamic middleware based on environment\nMIDDLEWARE = [\n    'django.middleware.security.SecurityMiddleware',\n]\n\nif ENVIRONMENT == 'production':\n    MIDDLEWARE.insert(0, 'whitenoise.middleware.WhiteNoiseMiddleware')\n\nif FEATURE_FLAGS['MAINTENANCE_MODE']:\n    MIDDLEWARE.insert(0, 'myproject.middleware.MaintenanceModeMiddleware')\n\nMIDDLEWARE.extend([\n    'django.contrib.sessions.middleware.SessionMiddleware',\n    'django.middleware.common.CommonMiddleware',\n    'django.middleware.csrf.CsrfViewMiddleware',\n    'django.contrib.auth.middleware.AuthenticationMiddleware',\n    'django.contrib.messages.middleware.MessageMiddleware',\n    'django.middleware.clickjacking.XFrameOptionsMiddleware',\n])\n",[1079,3888,3889,3894,3900,3910,3914,3938,3942,3947,3982,3986,4006,4015,4042,4046,4051,4060,4072,4091,4118,4146,4174,4211,4248,4253,4257,4261,4266,4280,4294,4298,4316,4324,4341,4345,4350,4358,4370,4388,4407,4426,4453,4471,4489,4493,4497,4501,4511,4519,4544,4548,4553,4561,4573,4591,4613,4617,4621,4625,4630,4639,4693,4743,4792,4796,4800,4805,4813,4823,4827,4831,4847,4873,4877,4895,4918,4922,4934,4944,4954,4964,4974,4984,4994],{"__ignoreMap":1077},[1082,3890,3891],{"class":1084,"line":1085},[1082,3892,3893],{"class":1088},"# settings.py - Environment-based configuration\n",[1082,3895,3896,3898],{"class":1084,"line":1092},[1082,3897,1096],{"class":1095},[1082,3899,1100],{"class":1099},[1082,3901,3902,3904,3906,3908],{"class":1084,"line":1103},[1082,3903,1106],{"class":1095},[1082,3905,1109],{"class":1099},[1082,3907,1096],{"class":1095},[1082,3909,1114],{"class":1099},[1082,3911,3912],{"class":1084,"line":1117},[1082,3913,1121],{"emptyLinePlaceholder":1120},[1082,3915,3916,3918,3920,3922,3924,3926,3928,3930,3932,3934,3936],{"class":1084,"line":1124},[1082,3917,1134],{"class":1133},[1082,3919,1138],{"class":1137},[1082,3921,1142],{"class":1141},[1082,3923,1145],{"class":1137},[1082,3925,1149],{"class":1148},[1082,3927,1152],{"class":1137},[1082,3929,1155],{"class":1141},[1082,3931,1158],{"class":1137},[1082,3933,1162],{"class":1161},[1082,3935,1165],{"class":1137},[1082,3937,1168],{"class":1161},[1082,3939,3940],{"class":1084,"line":1130},[1082,3941,1121],{"emptyLinePlaceholder":1120},[1082,3943,3944],{"class":1084,"line":1171},[1082,3945,3946],{"class":1088},"# Environment-specific settings\n",[1082,3948,3949,3952,3954,3957,3959,3962,3964,3966,3969,3971,3973,3975,3978,3980],{"class":1084,"line":1176},[1082,3950,3951],{"class":1133},"ENVIRONMENT",[1082,3953,1138],{"class":1137},[1082,3955,3956],{"class":1099}," os",[1082,3958,1165],{"class":1137},[1082,3960,3961],{"class":1141},"getenv",[1082,3963,1145],{"class":1137},[1082,3965,1271],{"class":1190},[1082,3967,3968],{"class":1194},"DJANGO_ENVIRONMENT",[1082,3970,1271],{"class":1190},[1082,3972,2206],{"class":1137},[1082,3974,1191],{"class":1190},[1082,3976,3977],{"class":1194},"development",[1082,3979,1271],{"class":1190},[1082,3981,2216],{"class":1137},[1082,3983,3984],{"class":1084,"line":1182},[1082,3985,1121],{"emptyLinePlaceholder":1120},[1082,3987,3988,3991,3994,3997,3999,4002,4004],{"class":1084,"line":1201},[1082,3989,3990],{"class":1095},"if",[1082,3992,3993],{"class":1133}," ENVIRONMENT",[1082,3995,3996],{"class":1546}," ==",[1082,3998,1191],{"class":1190},[1082,4000,4001],{"class":1194},"production",[1082,4003,1271],{"class":1190},[1082,4005,2753],{"class":1137},[1082,4007,4008,4011,4013],{"class":1084,"line":1206},[1082,4009,4010],{"class":1133},"    DEBUG",[1082,4012,1138],{"class":1137},[1082,4014,2400],{"class":1220},[1082,4016,4017,4020,4022,4024,4026,4029,4031,4033,4035,4038,4040],{"class":1084,"line":1212},[1082,4018,4019],{"class":1133},"    ALLOWED_HOSTS",[1082,4021,1138],{"class":1137},[1082,4023,1541],{"class":1137},[1082,4025,1271],{"class":1190},[1082,4027,4028],{"class":1194},"yourdomain.com",[1082,4030,1271],{"class":1190},[1082,4032,2206],{"class":1137},[1082,4034,1191],{"class":1190},[1082,4036,4037],{"class":1194},"www.yourdomain.com",[1082,4039,1271],{"class":1190},[1082,4041,1358],{"class":1137},[1082,4043,4044],{"class":1084,"line":1224},[1082,4045,2775],{"class":1099},[1082,4047,4048],{"class":1084,"line":1229},[1082,4049,4050],{"class":1088},"    # Production database\n",[1082,4052,4053,4056,4058],{"class":1084,"line":1240},[1082,4054,4055],{"class":1133},"    DATABASES",[1082,4057,1138],{"class":1137},[1082,4059,1589],{"class":1137},[1082,4061,4062,4064,4066,4068,4070],{"class":1084,"line":1245},[1082,4063,1509],{"class":1190},[1082,4065,1725],{"class":1194},[1082,4067,1271],{"class":1190},[1082,4069,1517],{"class":1137},[1082,4071,1589],{"class":1137},[1082,4073,4074,4076,4078,4080,4082,4084,4087,4089],{"class":1084,"line":1251},[1082,4075,1595],{"class":1190},[1082,4077,1739],{"class":1194},[1082,4079,1271],{"class":1190},[1082,4081,1517],{"class":1137},[1082,4083,1191],{"class":1190},[1082,4085,4086],{"class":1194},"django.db.backends.postgresql",[1082,4088,1271],{"class":1190},[1082,4090,1274],{"class":1137},[1082,4092,4093,4095,4097,4099,4101,4103,4105,4107,4109,4111,4114,4116],{"class":1084,"line":1262},[1082,4094,1595],{"class":1190},[1082,4096,1760],{"class":1194},[1082,4098,1271],{"class":1190},[1082,4100,1517],{"class":1137},[1082,4102,3956],{"class":1099},[1082,4104,1165],{"class":1137},[1082,4106,3961],{"class":1141},[1082,4108,1145],{"class":1137},[1082,4110,1271],{"class":1190},[1082,4112,4113],{"class":1194},"DB_NAME",[1082,4115,1271],{"class":1190},[1082,4117,2964],{"class":1137},[1082,4119,4120,4122,4125,4127,4129,4131,4133,4135,4137,4139,4142,4144],{"class":1084,"line":1277},[1082,4121,1595],{"class":1190},[1082,4123,4124],{"class":1194},"USER",[1082,4126,1271],{"class":1190},[1082,4128,1517],{"class":1137},[1082,4130,3956],{"class":1099},[1082,4132,1165],{"class":1137},[1082,4134,3961],{"class":1141},[1082,4136,1145],{"class":1137},[1082,4138,1271],{"class":1190},[1082,4140,4141],{"class":1194},"DB_USER",[1082,4143,1271],{"class":1190},[1082,4145,2964],{"class":1137},[1082,4147,4148,4150,4153,4155,4157,4159,4161,4163,4165,4167,4170,4172],{"class":1084,"line":1289},[1082,4149,1595],{"class":1190},[1082,4151,4152],{"class":1194},"PASSWORD",[1082,4154,1271],{"class":1190},[1082,4156,1517],{"class":1137},[1082,4158,3956],{"class":1099},[1082,4160,1165],{"class":1137},[1082,4162,3961],{"class":1141},[1082,4164,1145],{"class":1137},[1082,4166,1271],{"class":1190},[1082,4168,4169],{"class":1194},"DB_PASSWORD",[1082,4171,1271],{"class":1190},[1082,4173,2964],{"class":1137},[1082,4175,4176,4178,4181,4183,4185,4187,4189,4191,4193,4195,4198,4200,4202,4204,4207,4209],{"class":1084,"line":1301},[1082,4177,1595],{"class":1190},[1082,4179,4180],{"class":1194},"HOST",[1082,4182,1271],{"class":1190},[1082,4184,1517],{"class":1137},[1082,4186,3956],{"class":1099},[1082,4188,1165],{"class":1137},[1082,4190,3961],{"class":1141},[1082,4192,1145],{"class":1137},[1082,4194,1271],{"class":1190},[1082,4196,4197],{"class":1194},"DB_HOST",[1082,4199,1271],{"class":1190},[1082,4201,2206],{"class":1137},[1082,4203,1191],{"class":1190},[1082,4205,4206],{"class":1194},"localhost",[1082,4208,1271],{"class":1190},[1082,4210,2964],{"class":1137},[1082,4212,4213,4215,4218,4220,4222,4224,4226,4228,4230,4232,4235,4237,4239,4241,4244,4246],{"class":1084,"line":1313},[1082,4214,1595],{"class":1190},[1082,4216,4217],{"class":1194},"PORT",[1082,4219,1271],{"class":1190},[1082,4221,1517],{"class":1137},[1082,4223,3956],{"class":1099},[1082,4225,1165],{"class":1137},[1082,4227,3961],{"class":1141},[1082,4229,1145],{"class":1137},[1082,4231,1271],{"class":1190},[1082,4233,4234],{"class":1194},"DB_PORT",[1082,4236,1271],{"class":1190},[1082,4238,2206],{"class":1137},[1082,4240,1191],{"class":1190},[1082,4242,4243],{"class":1194},"5432",[1082,4245,1271],{"class":1190},[1082,4247,2964],{"class":1137},[1082,4249,4250],{"class":1084,"line":1325},[1082,4251,4252],{"class":1137},"        }\n",[1082,4254,4255],{"class":1084,"line":1337},[1082,4256,1784],{"class":1137},[1082,4258,4259],{"class":1084,"line":1343},[1082,4260,2775],{"class":1099},[1082,4262,4263],{"class":1084,"line":1355},[1082,4264,4265],{"class":1088},"    # Production static files\n",[1082,4267,4268,4271,4273,4275,4278],{"class":1084,"line":1361},[1082,4269,4270],{"class":1133},"    STATIC_ROOT",[1082,4272,1138],{"class":1137},[1082,4274,1191],{"class":1190},[1082,4276,4277],{"class":1194},"/var/www/static/",[1082,4279,1198],{"class":1190},[1082,4281,4282,4285,4287,4289,4292],{"class":1084,"line":1366},[1082,4283,4284],{"class":1133},"    MEDIA_ROOT",[1082,4286,1138],{"class":1137},[1082,4288,1191],{"class":1190},[1082,4290,4291],{"class":1194},"/var/www/media/",[1082,4293,1198],{"class":1190},[1082,4295,4296],{"class":1084,"line":1376},[1082,4297,2775],{"class":1099},[1082,4299,4300,4303,4305,4307,4309,4312,4314],{"class":1084,"line":1388},[1082,4301,4302],{"class":1095},"elif",[1082,4304,3993],{"class":1133},[1082,4306,3996],{"class":1546},[1082,4308,1191],{"class":1190},[1082,4310,4311],{"class":1194},"staging",[1082,4313,1271],{"class":1190},[1082,4315,2753],{"class":1137},[1082,4317,4318,4320,4322],{"class":1084,"line":1400},[1082,4319,4010],{"class":1133},[1082,4321,1138],{"class":1137},[1082,4323,1221],{"class":1220},[1082,4325,4326,4328,4330,4332,4334,4337,4339],{"class":1084,"line":1412},[1082,4327,4019],{"class":1133},[1082,4329,1138],{"class":1137},[1082,4331,1541],{"class":1137},[1082,4333,1271],{"class":1190},[1082,4335,4336],{"class":1194},"staging.yourdomain.com",[1082,4338,1271],{"class":1190},[1082,4340,1358],{"class":1137},[1082,4342,4343],{"class":1084,"line":1424},[1082,4344,2775],{"class":1099},[1082,4346,4347],{"class":1084,"line":1436},[1082,4348,4349],{"class":1088},"    # Staging database\n",[1082,4351,4352,4354,4356],{"class":1084,"line":1448},[1082,4353,4055],{"class":1133},[1082,4355,1138],{"class":1137},[1082,4357,1589],{"class":1137},[1082,4359,4360,4362,4364,4366,4368],{"class":1084,"line":1460},[1082,4361,1509],{"class":1190},[1082,4363,1725],{"class":1194},[1082,4365,1271],{"class":1190},[1082,4367,1517],{"class":1137},[1082,4369,1589],{"class":1137},[1082,4371,4372,4374,4376,4378,4380,4382,4384,4386],{"class":1084,"line":1465},[1082,4373,1595],{"class":1190},[1082,4375,1739],{"class":1194},[1082,4377,1271],{"class":1190},[1082,4379,1517],{"class":1137},[1082,4381,1191],{"class":1190},[1082,4383,4086],{"class":1194},[1082,4385,1271],{"class":1190},[1082,4387,1274],{"class":1137},[1082,4389,4390,4392,4394,4396,4398,4400,4403,4405],{"class":1084,"line":1470},[1082,4391,1595],{"class":1190},[1082,4393,1760],{"class":1194},[1082,4395,1271],{"class":1190},[1082,4397,1517],{"class":1137},[1082,4399,1191],{"class":1190},[1082,4401,4402],{"class":1194},"staging_db",[1082,4404,1271],{"class":1190},[1082,4406,1274],{"class":1137},[1082,4408,4409,4411,4413,4415,4417,4419,4422,4424],{"class":1084,"line":1485},[1082,4410,1595],{"class":1190},[1082,4412,4124],{"class":1194},[1082,4414,1271],{"class":1190},[1082,4416,1517],{"class":1137},[1082,4418,1191],{"class":1190},[1082,4420,4421],{"class":1194},"staging_user",[1082,4423,1271],{"class":1190},[1082,4425,1274],{"class":1137},[1082,4427,4428,4430,4432,4434,4436,4438,4440,4442,4444,4446,4449,4451],{"class":1084,"line":1490},[1082,4429,1595],{"class":1190},[1082,4431,4152],{"class":1194},[1082,4433,1271],{"class":1190},[1082,4435,1517],{"class":1137},[1082,4437,3956],{"class":1099},[1082,4439,1165],{"class":1137},[1082,4441,3961],{"class":1141},[1082,4443,1145],{"class":1137},[1082,4445,1271],{"class":1190},[1082,4447,4448],{"class":1194},"STAGING_DB_PASSWORD",[1082,4450,1271],{"class":1190},[1082,4452,2964],{"class":1137},[1082,4454,4455,4457,4459,4461,4463,4465,4467,4469],{"class":1084,"line":1500},[1082,4456,1595],{"class":1190},[1082,4458,4180],{"class":1194},[1082,4460,1271],{"class":1190},[1082,4462,1517],{"class":1137},[1082,4464,1191],{"class":1190},[1082,4466,4206],{"class":1194},[1082,4468,1271],{"class":1190},[1082,4470,1274],{"class":1137},[1082,4472,4473,4475,4477,4479,4481,4483,4485,4487],{"class":1084,"line":1506},[1082,4474,1595],{"class":1190},[1082,4476,4217],{"class":1194},[1082,4478,1271],{"class":1190},[1082,4480,1517],{"class":1137},[1082,4482,1191],{"class":1190},[1082,4484,4243],{"class":1194},[1082,4486,1271],{"class":1190},[1082,4488,1274],{"class":1137},[1082,4490,4491],{"class":1084,"line":1529},[1082,4492,4252],{"class":1137},[1082,4494,4495],{"class":1084,"line":1560},[1082,4496,1784],{"class":1137},[1082,4498,4499],{"class":1084,"line":1577},[1082,4500,2775],{"class":1099},[1082,4502,4503,4506,4508],{"class":1084,"line":1592},[1082,4504,4505],{"class":1095},"else",[1082,4507,1517],{"class":1137},[1082,4509,4510],{"class":1088},"  # development\n",[1082,4512,4513,4515,4517],{"class":1084,"line":1607},[1082,4514,4010],{"class":1133},[1082,4516,1138],{"class":1137},[1082,4518,1221],{"class":1220},[1082,4520,4521,4523,4525,4527,4529,4531,4533,4535,4537,4540,4542],{"class":1084,"line":1620},[1082,4522,4019],{"class":1133},[1082,4524,1138],{"class":1137},[1082,4526,1541],{"class":1137},[1082,4528,1271],{"class":1190},[1082,4530,4206],{"class":1194},[1082,4532,1271],{"class":1190},[1082,4534,2206],{"class":1137},[1082,4536,1191],{"class":1190},[1082,4538,4539],{"class":1194},"127.0.0.1",[1082,4541,1271],{"class":1190},[1082,4543,1358],{"class":1137},[1082,4545,4546],{"class":1084,"line":1632},[1082,4547,2775],{"class":1099},[1082,4549,4550],{"class":1084,"line":1644},[1082,4551,4552],{"class":1088},"    # Development database\n",[1082,4554,4555,4557,4559],{"class":1084,"line":1656},[1082,4556,4055],{"class":1133},[1082,4558,1138],{"class":1137},[1082,4560,1589],{"class":1137},[1082,4562,4563,4565,4567,4569,4571],{"class":1084,"line":1662},[1082,4564,1509],{"class":1190},[1082,4566,1725],{"class":1194},[1082,4568,1271],{"class":1190},[1082,4570,1517],{"class":1137},[1082,4572,1589],{"class":1137},[1082,4574,4575,4577,4579,4581,4583,4585,4587,4589],{"class":1084,"line":1668},[1082,4576,1595],{"class":1190},[1082,4578,1739],{"class":1194},[1082,4580,1271],{"class":1190},[1082,4582,1517],{"class":1137},[1082,4584,1191],{"class":1190},[1082,4586,1748],{"class":1194},[1082,4588,1271],{"class":1190},[1082,4590,1274],{"class":1137},[1082,4592,4593,4595,4597,4599,4601,4603,4605,4607,4609,4611],{"class":1084,"line":1674},[1082,4594,1595],{"class":1190},[1082,4596,1760],{"class":1194},[1082,4598,1271],{"class":1190},[1082,4600,1517],{"class":1137},[1082,4602,1767],{"class":1133},[1082,4604,1547],{"class":1546},[1082,4606,1191],{"class":1190},[1082,4608,1774],{"class":1194},[1082,4610,1271],{"class":1190},[1082,4612,1274],{"class":1137},[1082,4614,4615],{"class":1084,"line":1679},[1082,4616,4252],{"class":1137},[1082,4618,4619],{"class":1084,"line":1684},[1082,4620,1784],{"class":1137},[1082,4622,4623],{"class":1084,"line":1699},[1082,4624,1121],{"emptyLinePlaceholder":1120},[1082,4626,4627],{"class":1084,"line":1704},[1082,4628,4629],{"class":1088},"# Feature flags\n",[1082,4631,4632,4635,4637],{"class":1084,"line":1710},[1082,4633,4634],{"class":1133},"FEATURE_FLAGS",[1082,4636,1138],{"class":1137},[1082,4638,1589],{"class":1137},[1082,4640,4641,4643,4646,4648,4650,4652,4654,4656,4658,4660,4663,4665,4667,4669,4672,4674,4676,4679,4682,4684,4686,4689,4691],{"class":1084,"line":1720},[1082,4642,1265],{"class":1190},[1082,4644,4645],{"class":1194},"NEW_DASHBOARD",[1082,4647,1271],{"class":1190},[1082,4649,1517],{"class":1137},[1082,4651,3956],{"class":1099},[1082,4653,1165],{"class":1137},[1082,4655,3961],{"class":1141},[1082,4657,1145],{"class":1137},[1082,4659,1271],{"class":1190},[1082,4661,4662],{"class":1194},"FEATURE_NEW_DASHBOARD",[1082,4664,1271],{"class":1190},[1082,4666,2206],{"class":1137},[1082,4668,1191],{"class":1190},[1082,4670,4671],{"class":1194},"false",[1082,4673,1271],{"class":1190},[1082,4675,1152],{"class":1137},[1082,4677,4678],{"class":1141},"lower",[1082,4680,4681],{"class":1137},"()",[1082,4683,3996],{"class":1546},[1082,4685,1191],{"class":1190},[1082,4687,4688],{"class":1194},"true",[1082,4690,1271],{"class":1190},[1082,4692,1274],{"class":1137},[1082,4694,4695,4697,4700,4702,4704,4706,4708,4710,4712,4714,4717,4719,4721,4723,4725,4727,4729,4731,4733,4735,4737,4739,4741],{"class":1084,"line":1734},[1082,4696,1265],{"class":1190},[1082,4698,4699],{"class":1194},"BETA_FEATURES",[1082,4701,1271],{"class":1190},[1082,4703,1517],{"class":1137},[1082,4705,3956],{"class":1099},[1082,4707,1165],{"class":1137},[1082,4709,3961],{"class":1141},[1082,4711,1145],{"class":1137},[1082,4713,1271],{"class":1190},[1082,4715,4716],{"class":1194},"FEATURE_BETA",[1082,4718,1271],{"class":1190},[1082,4720,2206],{"class":1137},[1082,4722,1191],{"class":1190},[1082,4724,4671],{"class":1194},[1082,4726,1271],{"class":1190},[1082,4728,1152],{"class":1137},[1082,4730,4678],{"class":1141},[1082,4732,4681],{"class":1137},[1082,4734,3996],{"class":1546},[1082,4736,1191],{"class":1190},[1082,4738,4688],{"class":1194},[1082,4740,1271],{"class":1190},[1082,4742,1274],{"class":1137},[1082,4744,4745,4747,4750,4752,4754,4756,4758,4760,4762,4764,4766,4768,4770,4772,4774,4776,4778,4780,4782,4784,4786,4788,4790],{"class":1084,"line":1755},[1082,4746,1265],{"class":1190},[1082,4748,4749],{"class":1194},"MAINTENANCE_MODE",[1082,4751,1271],{"class":1190},[1082,4753,1517],{"class":1137},[1082,4755,3956],{"class":1099},[1082,4757,1165],{"class":1137},[1082,4759,3961],{"class":1141},[1082,4761,1145],{"class":1137},[1082,4763,1271],{"class":1190},[1082,4765,4749],{"class":1194},[1082,4767,1271],{"class":1190},[1082,4769,2206],{"class":1137},[1082,4771,1191],{"class":1190},[1082,4773,4671],{"class":1194},[1082,4775,1271],{"class":1190},[1082,4777,1152],{"class":1137},[1082,4779,4678],{"class":1141},[1082,4781,4681],{"class":1137},[1082,4783,3996],{"class":1546},[1082,4785,1191],{"class":1190},[1082,4787,4688],{"class":1194},[1082,4789,1271],{"class":1190},[1082,4791,1274],{"class":1137},[1082,4793,4794],{"class":1084,"line":1781},[1082,4795,1790],{"class":1137},[1082,4797,4798],{"class":1084,"line":1787},[1082,4799,1121],{"emptyLinePlaceholder":1120},[1082,4801,4802],{"class":1084,"line":1793},[1082,4803,4804],{"class":1088},"# Dynamic middleware based on environment\n",[1082,4806,4807,4809,4811],{"class":1084,"line":1798},[1082,4808,1369],{"class":1133},[1082,4810,1138],{"class":1137},[1082,4812,1259],{"class":1137},[1082,4814,4815,4817,4819,4821],{"class":1084,"line":1804},[1082,4816,1265],{"class":1190},[1082,4818,1381],{"class":1194},[1082,4820,1271],{"class":1190},[1082,4822,1274],{"class":1137},[1082,4824,4825],{"class":1084,"line":1819},[1082,4826,1358],{"class":1137},[1082,4828,4829],{"class":1084,"line":1834},[1082,4830,1121],{"emptyLinePlaceholder":1120},[1082,4832,4833,4835,4837,4839,4841,4843,4845],{"class":1084,"line":1844},[1082,4834,3990],{"class":1095},[1082,4836,3993],{"class":1133},[1082,4838,3996],{"class":1546},[1082,4840,1191],{"class":1190},[1082,4842,4001],{"class":1194},[1082,4844,1271],{"class":1190},[1082,4846,2753],{"class":1137},[1082,4848,4849,4852,4854,4857,4859,4862,4864,4866,4869,4871],{"class":1084,"line":1854},[1082,4850,4851],{"class":1133},"    MIDDLEWARE",[1082,4853,1165],{"class":1137},[1082,4855,4856],{"class":1141},"insert",[1082,4858,1145],{"class":1137},[1082,4860,4861],{"class":2597},"0",[1082,4863,2206],{"class":1137},[1082,4865,1191],{"class":1190},[1082,4867,4868],{"class":1194},"whitenoise.middleware.WhiteNoiseMiddleware",[1082,4870,1271],{"class":1190},[1082,4872,2216],{"class":1137},[1082,4874,4875],{"class":1084,"line":1859},[1082,4876,1121],{"emptyLinePlaceholder":1120},[1082,4878,4879,4881,4884,4886,4888,4890,4892],{"class":1084,"line":1865},[1082,4880,3990],{"class":1095},[1082,4882,4883],{"class":1133}," FEATURE_FLAGS",[1082,4885,3357],{"class":1137},[1082,4887,1271],{"class":1190},[1082,4889,4749],{"class":1194},[1082,4891,1271],{"class":1190},[1082,4893,4894],{"class":1137},"]:\n",[1082,4896,4897,4899,4901,4903,4905,4907,4909,4911,4914,4916],{"class":1084,"line":1880},[1082,4898,4851],{"class":1133},[1082,4900,1165],{"class":1137},[1082,4902,4856],{"class":1141},[1082,4904,1145],{"class":1137},[1082,4906,4861],{"class":2597},[1082,4908,2206],{"class":1137},[1082,4910,1191],{"class":1190},[1082,4912,4913],{"class":1194},"myproject.middleware.MaintenanceModeMiddleware",[1082,4915,1271],{"class":1190},[1082,4917,2216],{"class":1137},[1082,4919,4920],{"class":1084,"line":1903},[1082,4921,1121],{"emptyLinePlaceholder":1120},[1082,4923,4924,4926,4928,4931],{"class":1084,"line":1922},[1082,4925,1369],{"class":1133},[1082,4927,1165],{"class":1137},[1082,4929,4930],{"class":1141},"extend",[1082,4932,4933],{"class":1137},"([\n",[1082,4935,4936,4938,4940,4942],{"class":1084,"line":1927},[1082,4937,1265],{"class":1190},[1082,4939,1393],{"class":1194},[1082,4941,1271],{"class":1190},[1082,4943,1274],{"class":1137},[1082,4945,4946,4948,4950,4952],{"class":1084,"line":1933},[1082,4947,1265],{"class":1190},[1082,4949,1405],{"class":1194},[1082,4951,1271],{"class":1190},[1082,4953,1274],{"class":1137},[1082,4955,4956,4958,4960,4962],{"class":1084,"line":1948},[1082,4957,1265],{"class":1190},[1082,4959,1417],{"class":1194},[1082,4961,1271],{"class":1190},[1082,4963,1274],{"class":1137},[1082,4965,4966,4968,4970,4972],{"class":1084,"line":1967},[1082,4967,1265],{"class":1190},[1082,4969,1429],{"class":1194},[1082,4971,1271],{"class":1190},[1082,4973,1274],{"class":1137},[1082,4975,4976,4978,4980,4982],{"class":1084,"line":1972},[1082,4977,1265],{"class":1190},[1082,4979,1441],{"class":1194},[1082,4981,1271],{"class":1190},[1082,4983,1274],{"class":1137},[1082,4985,4986,4988,4990,4992],{"class":1084,"line":1978},[1082,4987,1265],{"class":1190},[1082,4989,1453],{"class":1194},[1082,4991,1271],{"class":1190},[1082,4993,1274],{"class":1137},[1082,4995,4997],{"class":1084,"line":4996},83,[1082,4998,4999],{"class":1137},"])\n",[1035,5001,5003],{"id":5002},"runtime-settings-modification","Runtime Settings Modification",[1072,5005,5007],{"className":1074,"code":5006,"language":1076,"meta":1077,"style":1077},"# Modifying settings at runtime (use with caution)\nfrom django.conf import settings\n\ndef configure_runtime_settings():\n    \"\"\"Modify settings at runtime - use sparingly\"\"\"\n    \n    # Check if settings are already configured\n    if not settings.configured:\n        settings.configure(\n            DEBUG=True,\n            DATABASES={\n                'default': {\n                    'ENGINE': 'django.db.backends.sqlite3',\n                    'NAME': ':memory:',\n                }\n            },\n            INSTALLED_APPS=[\n                'django.contrib.auth',\n                'django.contrib.contenttypes',\n                'myapp',\n            ],\n        )\n    \n    # Modify existing settings (dangerous!)\n    # settings.DEBUG = False  # This won't work - settings are read-only\n    \n    # Instead, use environment variables or configuration files\n\n# Better approach: Configuration classes\nclass BaseConfig:\n    DEBUG = False\n    TESTING = False\n    SECRET_KEY = os.getenv('SECRET_KEY')\n    \n    @classmethod\n    def init_app(cls, app):\n        pass\n\nclass DevelopmentConfig(BaseConfig):\n    DEBUG = True\n    DATABASES = {\n        'default': {\n            'ENGINE': 'django.db.backends.sqlite3',\n            'NAME': 'dev.db',\n        }\n    }\n\nclass ProductionConfig(BaseConfig):\n    DATABASES = {\n        'default': {\n            'ENGINE': 'django.db.backends.postgresql',\n            'NAME': os.getenv('DB_NAME'),\n            'USER': os.getenv('DB_USER'),\n            'PASSWORD': os.getenv('DB_PASSWORD'),\n        }\n    }\n\nclass TestingConfig(BaseConfig):\n    TESTING = True\n    DATABASES = {\n        'default': {\n            'ENGINE': 'django.db.backends.sqlite3',\n            'NAME': ':memory:',\n        }\n    }\n\n# Configuration mapping\nconfig = {\n    'development': DevelopmentConfig,\n    'production': ProductionConfig,\n    'testing': TestingConfig,\n    'default': DevelopmentConfig\n}\n",[1079,5008,5009,5014,5028,5032,5042,5051,5055,5060,5076,5088,5100,5108,5120,5139,5158,5163,5168,5176,5186,5196,5206,5210,5215,5219,5224,5229,5233,5238,5242,5247,5256,5264,5273,5296,5300,5309,5328,5333,5337,5351,5359,5367,5379,5397,5416,5420,5424,5428,5441,5449,5461,5479,5505,5531,5557,5561,5565,5569,5582,5590,5598,5610,5628,5646,5650,5654,5658,5663,5672,5686,5700,5715,5728],{"__ignoreMap":1077},[1082,5010,5011],{"class":1084,"line":1085},[1082,5012,5013],{"class":1088},"# Modifying settings at runtime (use with caution)\n",[1082,5015,5016,5018,5020,5022,5024,5026],{"class":1084,"line":1092},[1082,5017,1106],{"class":1095},[1082,5019,2161],{"class":1099},[1082,5021,1165],{"class":1137},[1082,5023,2166],{"class":1099},[1082,5025,1096],{"class":1095},[1082,5027,2171],{"class":1099},[1082,5029,5030],{"class":1084,"line":1103},[1082,5031,1121],{"emptyLinePlaceholder":1120},[1082,5033,5034,5036,5039],{"class":1084,"line":1117},[1082,5035,2720],{"class":2021},[1082,5037,5038],{"class":2723}," configure_runtime_settings",[1082,5040,5041],{"class":1137},"():\n",[1082,5043,5044,5046,5049],{"class":1084,"line":1124},[1082,5045,3615],{"class":3614},[1082,5047,5048],{"class":3618},"Modify settings at runtime - use sparingly",[1082,5050,3622],{"class":3614},[1082,5052,5053],{"class":1084,"line":1130},[1082,5054,2775],{"class":1099},[1082,5056,5057],{"class":1084,"line":1171},[1082,5058,5059],{"class":1088},"    # Check if settings are already configured\n",[1082,5061,5062,5064,5067,5069,5071,5074],{"class":1084,"line":1176},[1082,5063,2743],{"class":1095},[1082,5065,5066],{"class":1546}," not",[1082,5068,2746],{"class":1099},[1082,5070,1165],{"class":1137},[1082,5072,5073],{"class":1161},"configured",[1082,5075,2753],{"class":1137},[1082,5077,5078,5081,5083,5086],{"class":1084,"line":1182},[1082,5079,5080],{"class":1099},"        settings",[1082,5082,1165],{"class":1137},[1082,5084,5085],{"class":1141},"configure",[1082,5087,3272],{"class":1137},[1082,5089,5090,5093,5095,5098],{"class":1084,"line":1201},[1082,5091,5092],{"class":3062},"            DEBUG",[1082,5094,2029],{"class":1137},[1082,5096,5097],{"class":1220},"True",[1082,5099,1274],{"class":1137},[1082,5101,5102,5105],{"class":1084,"line":1206},[1082,5103,5104],{"class":3062},"            DATABASES",[1082,5106,5107],{"class":1137},"={\n",[1082,5109,5110,5112,5114,5116,5118],{"class":1084,"line":1212},[1082,5111,1610],{"class":1190},[1082,5113,1725],{"class":1194},[1082,5115,1271],{"class":1190},[1082,5117,1517],{"class":1137},[1082,5119,1589],{"class":1137},[1082,5121,5122,5125,5127,5129,5131,5133,5135,5137],{"class":1084,"line":1224},[1082,5123,5124],{"class":1190},"                    '",[1082,5126,1739],{"class":1194},[1082,5128,1271],{"class":1190},[1082,5130,1517],{"class":1137},[1082,5132,1191],{"class":1190},[1082,5134,1748],{"class":1194},[1082,5136,1271],{"class":1190},[1082,5138,1274],{"class":1137},[1082,5140,5141,5143,5145,5147,5149,5151,5154,5156],{"class":1084,"line":1229},[1082,5142,5124],{"class":1190},[1082,5144,1760],{"class":1194},[1082,5146,1271],{"class":1190},[1082,5148,1517],{"class":1137},[1082,5150,1191],{"class":1190},[1082,5152,5153],{"class":1194},":memory:",[1082,5155,1271],{"class":1190},[1082,5157,1274],{"class":1137},[1082,5159,5160],{"class":1084,"line":1240},[1082,5161,5162],{"class":1137},"                }\n",[1082,5164,5165],{"class":1084,"line":1245},[1082,5166,5167],{"class":1137},"            },\n",[1082,5169,5170,5173],{"class":1084,"line":1251},[1082,5171,5172],{"class":3062},"            INSTALLED_APPS",[1082,5174,5175],{"class":1137},"=[\n",[1082,5177,5178,5180,5182,5184],{"class":1084,"line":1262},[1082,5179,1610],{"class":1190},[1082,5181,1282],{"class":1194},[1082,5183,1271],{"class":1190},[1082,5185,1274],{"class":1137},[1082,5187,5188,5190,5192,5194],{"class":1084,"line":1277},[1082,5189,1610],{"class":1190},[1082,5191,1294],{"class":1194},[1082,5193,1271],{"class":1190},[1082,5195,1274],{"class":1137},[1082,5197,5198,5200,5202,5204],{"class":1084,"line":1289},[1082,5199,1610],{"class":1190},[1082,5201,1348],{"class":1194},[1082,5203,1271],{"class":1190},[1082,5205,1274],{"class":1137},[1082,5207,5208],{"class":1084,"line":1301},[1082,5209,1659],{"class":1137},[1082,5211,5212],{"class":1084,"line":1313},[1082,5213,5214],{"class":1137},"        )\n",[1082,5216,5217],{"class":1084,"line":1325},[1082,5218,2775],{"class":1099},[1082,5220,5221],{"class":1084,"line":1337},[1082,5222,5223],{"class":1088},"    # Modify existing settings (dangerous!)\n",[1082,5225,5226],{"class":1084,"line":1343},[1082,5227,5228],{"class":1088},"    # settings.DEBUG = False  # This won't work - settings are read-only\n",[1082,5230,5231],{"class":1084,"line":1355},[1082,5232,2775],{"class":1099},[1082,5234,5235],{"class":1084,"line":1361},[1082,5236,5237],{"class":1088},"    # Instead, use environment variables or configuration files\n",[1082,5239,5240],{"class":1084,"line":1366},[1082,5241,1121],{"emptyLinePlaceholder":1120},[1082,5243,5244],{"class":1084,"line":1376},[1082,5245,5246],{"class":1088},"# Better approach: Configuration classes\n",[1082,5248,5249,5251,5254],{"class":1084,"line":1388},[1082,5250,3017],{"class":2021},[1082,5252,5253],{"class":3020}," BaseConfig",[1082,5255,2753],{"class":1137},[1082,5257,5258,5260,5262],{"class":1084,"line":1400},[1082,5259,4010],{"class":1133},[1082,5261,1138],{"class":1137},[1082,5263,2400],{"class":1220},[1082,5265,5266,5269,5271],{"class":1084,"line":1412},[1082,5267,5268],{"class":1133},"    TESTING",[1082,5270,1138],{"class":1137},[1082,5272,2400],{"class":1220},[1082,5274,5275,5278,5280,5282,5284,5286,5288,5290,5292,5294],{"class":1084,"line":1424},[1082,5276,5277],{"class":1133},"    SECRET_KEY",[1082,5279,1138],{"class":1137},[1082,5281,3956],{"class":1099},[1082,5283,1165],{"class":1137},[1082,5285,3961],{"class":1141},[1082,5287,1145],{"class":1137},[1082,5289,1271],{"class":1190},[1082,5291,1185],{"class":1194},[1082,5293,1271],{"class":1190},[1082,5295,2216],{"class":1137},[1082,5297,5298],{"class":1084,"line":1436},[1082,5299,2775],{"class":1099},[1082,5301,5302,5305],{"class":1084,"line":1448},[1082,5303,5304],{"class":1137},"    @",[1082,5306,5308],{"class":5307},"sa2tF","classmethod\n",[1082,5310,5311,5313,5316,5318,5321,5323,5326],{"class":1084,"line":1460},[1082,5312,3113],{"class":2021},[1082,5314,5315],{"class":2723}," init_app",[1082,5317,1145],{"class":1137},[1082,5319,5320],{"class":2729},"cls",[1082,5322,2206],{"class":1137},[1082,5324,5325],{"class":2729}," app",[1082,5327,2733],{"class":1137},[1082,5329,5330],{"class":1084,"line":1465},[1082,5331,5332],{"class":1095},"        pass\n",[1082,5334,5335],{"class":1084,"line":1470},[1082,5336,1121],{"emptyLinePlaceholder":1120},[1082,5338,5339,5341,5344,5346,5349],{"class":1084,"line":1485},[1082,5340,3017],{"class":2021},[1082,5342,5343],{"class":3020}," DevelopmentConfig",[1082,5345,1145],{"class":1137},[1082,5347,5348],{"class":2085},"BaseConfig",[1082,5350,2733],{"class":1137},[1082,5352,5353,5355,5357],{"class":1084,"line":1490},[1082,5354,4010],{"class":1133},[1082,5356,1138],{"class":1137},[1082,5358,1221],{"class":1220},[1082,5360,5361,5363,5365],{"class":1084,"line":1500},[1082,5362,4055],{"class":1133},[1082,5364,1138],{"class":1137},[1082,5366,1589],{"class":1137},[1082,5368,5369,5371,5373,5375,5377],{"class":1084,"line":1506},[1082,5370,1509],{"class":1190},[1082,5372,1725],{"class":1194},[1082,5374,1271],{"class":1190},[1082,5376,1517],{"class":1137},[1082,5378,1589],{"class":1137},[1082,5380,5381,5383,5385,5387,5389,5391,5393,5395],{"class":1084,"line":1529},[1082,5382,1595],{"class":1190},[1082,5384,1739],{"class":1194},[1082,5386,1271],{"class":1190},[1082,5388,1517],{"class":1137},[1082,5390,1191],{"class":1190},[1082,5392,1748],{"class":1194},[1082,5394,1271],{"class":1190},[1082,5396,1274],{"class":1137},[1082,5398,5399,5401,5403,5405,5407,5409,5412,5414],{"class":1084,"line":1560},[1082,5400,1595],{"class":1190},[1082,5402,1760],{"class":1194},[1082,5404,1271],{"class":1190},[1082,5406,1517],{"class":1137},[1082,5408,1191],{"class":1190},[1082,5410,5411],{"class":1194},"dev.db",[1082,5413,1271],{"class":1190},[1082,5415,1274],{"class":1137},[1082,5417,5418],{"class":1084,"line":1577},[1082,5419,4252],{"class":1137},[1082,5421,5422],{"class":1084,"line":1592},[1082,5423,1784],{"class":1137},[1082,5425,5426],{"class":1084,"line":1607},[1082,5427,1121],{"emptyLinePlaceholder":1120},[1082,5429,5430,5432,5435,5437,5439],{"class":1084,"line":1620},[1082,5431,3017],{"class":2021},[1082,5433,5434],{"class":3020}," ProductionConfig",[1082,5436,1145],{"class":1137},[1082,5438,5348],{"class":2085},[1082,5440,2733],{"class":1137},[1082,5442,5443,5445,5447],{"class":1084,"line":1632},[1082,5444,4055],{"class":1133},[1082,5446,1138],{"class":1137},[1082,5448,1589],{"class":1137},[1082,5450,5451,5453,5455,5457,5459],{"class":1084,"line":1644},[1082,5452,1509],{"class":1190},[1082,5454,1725],{"class":1194},[1082,5456,1271],{"class":1190},[1082,5458,1517],{"class":1137},[1082,5460,1589],{"class":1137},[1082,5462,5463,5465,5467,5469,5471,5473,5475,5477],{"class":1084,"line":1656},[1082,5464,1595],{"class":1190},[1082,5466,1739],{"class":1194},[1082,5468,1271],{"class":1190},[1082,5470,1517],{"class":1137},[1082,5472,1191],{"class":1190},[1082,5474,4086],{"class":1194},[1082,5476,1271],{"class":1190},[1082,5478,1274],{"class":1137},[1082,5480,5481,5483,5485,5487,5489,5491,5493,5495,5497,5499,5501,5503],{"class":1084,"line":1662},[1082,5482,1595],{"class":1190},[1082,5484,1760],{"class":1194},[1082,5486,1271],{"class":1190},[1082,5488,1517],{"class":1137},[1082,5490,3956],{"class":1099},[1082,5492,1165],{"class":1137},[1082,5494,3961],{"class":1141},[1082,5496,1145],{"class":1137},[1082,5498,1271],{"class":1190},[1082,5500,4113],{"class":1194},[1082,5502,1271],{"class":1190},[1082,5504,2964],{"class":1137},[1082,5506,5507,5509,5511,5513,5515,5517,5519,5521,5523,5525,5527,5529],{"class":1084,"line":1668},[1082,5508,1595],{"class":1190},[1082,5510,4124],{"class":1194},[1082,5512,1271],{"class":1190},[1082,5514,1517],{"class":1137},[1082,5516,3956],{"class":1099},[1082,5518,1165],{"class":1137},[1082,5520,3961],{"class":1141},[1082,5522,1145],{"class":1137},[1082,5524,1271],{"class":1190},[1082,5526,4141],{"class":1194},[1082,5528,1271],{"class":1190},[1082,5530,2964],{"class":1137},[1082,5532,5533,5535,5537,5539,5541,5543,5545,5547,5549,5551,5553,5555],{"class":1084,"line":1674},[1082,5534,1595],{"class":1190},[1082,5536,4152],{"class":1194},[1082,5538,1271],{"class":1190},[1082,5540,1517],{"class":1137},[1082,5542,3956],{"class":1099},[1082,5544,1165],{"class":1137},[1082,5546,3961],{"class":1141},[1082,5548,1145],{"class":1137},[1082,5550,1271],{"class":1190},[1082,5552,4169],{"class":1194},[1082,5554,1271],{"class":1190},[1082,5556,2964],{"class":1137},[1082,5558,5559],{"class":1084,"line":1679},[1082,5560,4252],{"class":1137},[1082,5562,5563],{"class":1084,"line":1684},[1082,5564,1784],{"class":1137},[1082,5566,5567],{"class":1084,"line":1699},[1082,5568,1121],{"emptyLinePlaceholder":1120},[1082,5570,5571,5573,5576,5578,5580],{"class":1084,"line":1704},[1082,5572,3017],{"class":2021},[1082,5574,5575],{"class":3020}," TestingConfig",[1082,5577,1145],{"class":1137},[1082,5579,5348],{"class":2085},[1082,5581,2733],{"class":1137},[1082,5583,5584,5586,5588],{"class":1084,"line":1710},[1082,5585,5268],{"class":1133},[1082,5587,1138],{"class":1137},[1082,5589,1221],{"class":1220},[1082,5591,5592,5594,5596],{"class":1084,"line":1720},[1082,5593,4055],{"class":1133},[1082,5595,1138],{"class":1137},[1082,5597,1589],{"class":1137},[1082,5599,5600,5602,5604,5606,5608],{"class":1084,"line":1734},[1082,5601,1509],{"class":1190},[1082,5603,1725],{"class":1194},[1082,5605,1271],{"class":1190},[1082,5607,1517],{"class":1137},[1082,5609,1589],{"class":1137},[1082,5611,5612,5614,5616,5618,5620,5622,5624,5626],{"class":1084,"line":1755},[1082,5613,1595],{"class":1190},[1082,5615,1739],{"class":1194},[1082,5617,1271],{"class":1190},[1082,5619,1517],{"class":1137},[1082,5621,1191],{"class":1190},[1082,5623,1748],{"class":1194},[1082,5625,1271],{"class":1190},[1082,5627,1274],{"class":1137},[1082,5629,5630,5632,5634,5636,5638,5640,5642,5644],{"class":1084,"line":1781},[1082,5631,1595],{"class":1190},[1082,5633,1760],{"class":1194},[1082,5635,1271],{"class":1190},[1082,5637,1517],{"class":1137},[1082,5639,1191],{"class":1190},[1082,5641,5153],{"class":1194},[1082,5643,1271],{"class":1190},[1082,5645,1274],{"class":1137},[1082,5647,5648],{"class":1084,"line":1787},[1082,5649,4252],{"class":1137},[1082,5651,5652],{"class":1084,"line":1793},[1082,5653,1784],{"class":1137},[1082,5655,5656],{"class":1084,"line":1798},[1082,5657,1121],{"emptyLinePlaceholder":1120},[1082,5659,5660],{"class":1084,"line":1804},[1082,5661,5662],{"class":1088},"# Configuration mapping\n",[1082,5664,5665,5668,5670],{"class":1084,"line":1819},[1082,5666,5667],{"class":1099},"config ",[1082,5669,2029],{"class":1137},[1082,5671,1589],{"class":1137},[1082,5673,5674,5676,5678,5680,5682,5684],{"class":1084,"line":1834},[1082,5675,1265],{"class":1190},[1082,5677,3977],{"class":1194},[1082,5679,1271],{"class":1190},[1082,5681,1517],{"class":1137},[1082,5683,5343],{"class":1099},[1082,5685,1274],{"class":1137},[1082,5687,5688,5690,5692,5694,5696,5698],{"class":1084,"line":1844},[1082,5689,1265],{"class":1190},[1082,5691,4001],{"class":1194},[1082,5693,1271],{"class":1190},[1082,5695,1517],{"class":1137},[1082,5697,5434],{"class":1099},[1082,5699,1274],{"class":1137},[1082,5701,5702,5704,5707,5709,5711,5713],{"class":1084,"line":1854},[1082,5703,1265],{"class":1190},[1082,5705,5706],{"class":1194},"testing",[1082,5708,1271],{"class":1190},[1082,5710,1517],{"class":1137},[1082,5712,5575],{"class":1099},[1082,5714,1274],{"class":1137},[1082,5716,5717,5719,5721,5723,5725],{"class":1084,"line":1859},[1082,5718,1265],{"class":1190},[1082,5720,1725],{"class":1194},[1082,5722,1271],{"class":1190},[1082,5724,1517],{"class":1137},[1082,5726,5727],{"class":1099}," DevelopmentConfig\n",[1082,5729,5730],{"class":1084,"line":1865},[1082,5731,1790],{"class":1137},[1030,5733,541],{"id":5734},"security",[1035,5736,5738],{"id":5737},"essential-security-settings","Essential Security Settings",[1072,5740,5742],{"className":1074,"code":5741,"language":1076,"meta":1077,"style":1077},"# settings.py - Security configuration\n\n# Secret key - NEVER commit to version control\nSECRET_KEY = os.getenv('SECRET_KEY')\nif not SECRET_KEY:\n    raise ValueError(\"SECRET_KEY environment variable is required\")\n\n# Debug - NEVER True in production\nDEBUG = os.getenv('DEBUG', 'False').lower() == 'true'\n\n# Allowed hosts - Restrict to your domains\nALLOWED_HOSTS = os.getenv('ALLOWED_HOSTS', '').split(',') if os.getenv('ALLOWED_HOSTS') else []\n\n# Security middleware\nMIDDLEWARE = [\n    'django.middleware.security.SecurityMiddleware',\n    # ... other middleware\n]\n\n# HTTPS settings\nif not DEBUG:\n    SECURE_SSL_REDIRECT = True\n    SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')\n    SECURE_HSTS_SECONDS = 31536000  # 1 year\n    SECURE_HSTS_INCLUDE_SUBDOMAINS = True\n    SECURE_HSTS_PRELOAD = True\n    SECURE_CONTENT_TYPE_NOSNIFF = True\n    SECURE_BROWSER_XSS_FILTER = True\n    X_FRAME_OPTIONS = 'DENY'\n\n# Session security\nSESSION_COOKIE_SECURE = not DEBUG\nSESSION_COOKIE_HTTPONLY = True\nSESSION_COOKIE_SAMESITE = 'Lax'\nSESSION_COOKIE_AGE = 3600  # 1 hour\n\n# CSRF protection\nCSRF_COOKIE_SECURE = not DEBUG\nCSRF_COOKIE_HTTPONLY = True\nCSRF_COOKIE_SAMESITE = 'Lax'\nCSRF_TRUSTED_ORIGINS = ['https://yourdomain.com']\n\n# Database security\nDATABASES = {\n    'default': {\n        'ENGINE': 'django.db.backends.postgresql',\n        'NAME': os.getenv('DB_NAME'),\n        'USER': os.getenv('DB_USER'),\n        'PASSWORD': os.getenv('DB_PASSWORD'),\n        'HOST': os.getenv('DB_HOST', 'localhost'),\n        'PORT': os.getenv('DB_PORT', '5432'),\n        'OPTIONS': {\n            'sslmode': 'require',\n        },\n    }\n}\n\n# File upload security\nFILE_UPLOAD_MAX_MEMORY_SIZE = 5242880  # 5MB\nDATA_UPLOAD_MAX_MEMORY_SIZE = 5242880  # 5MB\nFILE_UPLOAD_PERMISSIONS = 0o644\n\n# Password validation\nAUTH_PASSWORD_VALIDATORS = [\n    {\n        'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',\n    },\n    {\n        'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',\n        'OPTIONS': {\n            'min_length': 12,\n        }\n    },\n    {\n        'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',\n    },\n    {\n        'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',\n    },\n]\n\n# Logging security events\nLOGGING = {\n    'version': 1,\n    'disable_existing_loggers': False,\n    'handlers': {\n        'security_file': {\n            'level': 'WARNING',\n            'class': 'logging.FileHandler',\n            'filename': 'security.log',\n        },\n    },\n    'loggers': {\n        'django.security': {\n            'handlers': ['security_file'],\n            'level': 'WARNING',\n            'propagate': True,\n        },\n    },\n}\n",[1079,5743,5744,5749,5753,5758,5780,5791,5810,5814,5819,5862,5866,5871,5934,5938,5943,5951,5961,5966,5970,5974,5979,5990,5999,6027,6039,6048,6057,6066,6075,6089,6093,6098,6110,6119,6133,6145,6149,6154,6165,6174,6187,6205,6209,6214,6222,6234,6252,6278,6304,6330,6364,6398,6410,6430,6434,6438,6442,6446,6451,6463,6473,6486,6490,6495,6504,6508,6527,6531,6535,6554,6566,6581,6585,6589,6593,6612,6616,6620,6639,6643,6647,6651,6656,6665,6682,6699,6713,6727,6748,6768,6789,6794,6799,6813,6827,6848,6867,6883,6888,6893],{"__ignoreMap":1077},[1082,5745,5746],{"class":1084,"line":1085},[1082,5747,5748],{"class":1088},"# settings.py - Security configuration\n",[1082,5750,5751],{"class":1084,"line":1092},[1082,5752,1121],{"emptyLinePlaceholder":1120},[1082,5754,5755],{"class":1084,"line":1103},[1082,5756,5757],{"class":1088},"# Secret key - NEVER commit to version control\n",[1082,5759,5760,5762,5764,5766,5768,5770,5772,5774,5776,5778],{"class":1084,"line":1117},[1082,5761,1185],{"class":1133},[1082,5763,1138],{"class":1137},[1082,5765,3956],{"class":1099},[1082,5767,1165],{"class":1137},[1082,5769,3961],{"class":1141},[1082,5771,1145],{"class":1137},[1082,5773,1271],{"class":1190},[1082,5775,1185],{"class":1194},[1082,5777,1271],{"class":1190},[1082,5779,2216],{"class":1137},[1082,5781,5782,5784,5786,5789],{"class":1084,"line":1124},[1082,5783,3990],{"class":1095},[1082,5785,5066],{"class":1546},[1082,5787,5788],{"class":1133}," SECRET_KEY",[1082,5790,2753],{"class":1137},[1082,5792,5793,5796,5799,5801,5803,5806,5808],{"class":1084,"line":1130},[1082,5794,5795],{"class":1095},"    raise",[1082,5797,5798],{"class":5307}," ValueError",[1082,5800,1145],{"class":1137},[1082,5802,2763],{"class":1190},[1082,5804,5805],{"class":1194},"SECRET_KEY environment variable is required",[1082,5807,2763],{"class":1190},[1082,5809,2216],{"class":1137},[1082,5811,5812],{"class":1084,"line":1171},[1082,5813,1121],{"emptyLinePlaceholder":1120},[1082,5815,5816],{"class":1084,"line":1176},[1082,5817,5818],{"class":1088},"# Debug - NEVER True in production\n",[1082,5820,5821,5823,5825,5827,5829,5831,5833,5835,5837,5839,5841,5843,5846,5848,5850,5852,5854,5856,5858,5860],{"class":1084,"line":1182},[1082,5822,1215],{"class":1133},[1082,5824,1138],{"class":1137},[1082,5826,3956],{"class":1099},[1082,5828,1165],{"class":1137},[1082,5830,3961],{"class":1141},[1082,5832,1145],{"class":1137},[1082,5834,1271],{"class":1190},[1082,5836,1215],{"class":1194},[1082,5838,1271],{"class":1190},[1082,5840,2206],{"class":1137},[1082,5842,1191],{"class":1190},[1082,5844,5845],{"class":1194},"False",[1082,5847,1271],{"class":1190},[1082,5849,1152],{"class":1137},[1082,5851,4678],{"class":1141},[1082,5853,4681],{"class":1137},[1082,5855,3996],{"class":1546},[1082,5857,1191],{"class":1190},[1082,5859,4688],{"class":1194},[1082,5861,1198],{"class":1190},[1082,5863,5864],{"class":1084,"line":1201},[1082,5865,1121],{"emptyLinePlaceholder":1120},[1082,5867,5868],{"class":1084,"line":1206},[1082,5869,5870],{"class":1088},"# Allowed hosts - Restrict to your domains\n",[1082,5872,5873,5875,5877,5879,5881,5883,5885,5887,5889,5891,5893,5895,5897,5900,5902,5904,5906,5908,5910,5913,5915,5917,5919,5921,5923,5925,5927,5929,5932],{"class":1084,"line":1212},[1082,5874,1232],{"class":1133},[1082,5876,1138],{"class":1137},[1082,5878,3956],{"class":1099},[1082,5880,1165],{"class":1137},[1082,5882,3961],{"class":1141},[1082,5884,1145],{"class":1137},[1082,5886,1271],{"class":1190},[1082,5888,1232],{"class":1194},[1082,5890,1271],{"class":1190},[1082,5892,2206],{"class":1137},[1082,5894,3710],{"class":1190},[1082,5896,1152],{"class":1137},[1082,5898,5899],{"class":1141},"split",[1082,5901,1145],{"class":1137},[1082,5903,1271],{"class":1190},[1082,5905,2206],{"class":1194},[1082,5907,1271],{"class":1190},[1082,5909,2335],{"class":1137},[1082,5911,5912],{"class":1095}," if",[1082,5914,3956],{"class":1099},[1082,5916,1165],{"class":1137},[1082,5918,3961],{"class":1141},[1082,5920,1145],{"class":1137},[1082,5922,1271],{"class":1190},[1082,5924,1232],{"class":1194},[1082,5926,1271],{"class":1190},[1082,5928,2335],{"class":1137},[1082,5930,5931],{"class":1095}," else",[1082,5933,1237],{"class":1137},[1082,5935,5936],{"class":1084,"line":1224},[1082,5937,1121],{"emptyLinePlaceholder":1120},[1082,5939,5940],{"class":1084,"line":1229},[1082,5941,5942],{"class":1088},"# Security middleware\n",[1082,5944,5945,5947,5949],{"class":1084,"line":1240},[1082,5946,1369],{"class":1133},[1082,5948,1138],{"class":1137},[1082,5950,1259],{"class":1137},[1082,5952,5953,5955,5957,5959],{"class":1084,"line":1245},[1082,5954,1265],{"class":1190},[1082,5956,1381],{"class":1194},[1082,5958,1271],{"class":1190},[1082,5960,1274],{"class":1137},[1082,5962,5963],{"class":1084,"line":1251},[1082,5964,5965],{"class":1088},"    # ... other middleware\n",[1082,5967,5968],{"class":1084,"line":1262},[1082,5969,1358],{"class":1137},[1082,5971,5972],{"class":1084,"line":1277},[1082,5973,1121],{"emptyLinePlaceholder":1120},[1082,5975,5976],{"class":1084,"line":1289},[1082,5977,5978],{"class":1088},"# HTTPS settings\n",[1082,5980,5981,5983,5985,5988],{"class":1084,"line":1301},[1082,5982,3990],{"class":1095},[1082,5984,5066],{"class":1546},[1082,5986,5987],{"class":1133}," DEBUG",[1082,5989,2753],{"class":1137},[1082,5991,5992,5995,5997],{"class":1084,"line":1313},[1082,5993,5994],{"class":1133},"    SECURE_SSL_REDIRECT",[1082,5996,1138],{"class":1137},[1082,5998,1221],{"class":1220},[1082,6000,6001,6004,6006,6009,6011,6014,6016,6018,6020,6023,6025],{"class":1084,"line":1325},[1082,6002,6003],{"class":1133},"    SECURE_PROXY_SSL_HEADER",[1082,6005,1138],{"class":1137},[1082,6007,6008],{"class":1137}," (",[1082,6010,1271],{"class":1190},[1082,6012,6013],{"class":1194},"HTTP_X_FORWARDED_PROTO",[1082,6015,1271],{"class":1190},[1082,6017,2206],{"class":1137},[1082,6019,1191],{"class":1190},[1082,6021,6022],{"class":1194},"https",[1082,6024,1271],{"class":1190},[1082,6026,2216],{"class":1137},[1082,6028,6029,6032,6034,6037],{"class":1084,"line":1337},[1082,6030,6031],{"class":1133},"    SECURE_HSTS_SECONDS",[1082,6033,1138],{"class":1137},[1082,6035,6036],{"class":2597}," 31536000",[1082,6038,2651],{"class":1088},[1082,6040,6041,6044,6046],{"class":1084,"line":1343},[1082,6042,6043],{"class":1133},"    SECURE_HSTS_INCLUDE_SUBDOMAINS",[1082,6045,1138],{"class":1137},[1082,6047,1221],{"class":1220},[1082,6049,6050,6053,6055],{"class":1084,"line":1355},[1082,6051,6052],{"class":1133},"    SECURE_HSTS_PRELOAD",[1082,6054,1138],{"class":1137},[1082,6056,1221],{"class":1220},[1082,6058,6059,6062,6064],{"class":1084,"line":1361},[1082,6060,6061],{"class":1133},"    SECURE_CONTENT_TYPE_NOSNIFF",[1082,6063,1138],{"class":1137},[1082,6065,1221],{"class":1220},[1082,6067,6068,6071,6073],{"class":1084,"line":1366},[1082,6069,6070],{"class":1133},"    SECURE_BROWSER_XSS_FILTER",[1082,6072,1138],{"class":1137},[1082,6074,1221],{"class":1220},[1082,6076,6077,6080,6082,6084,6087],{"class":1084,"line":1376},[1082,6078,6079],{"class":1133},"    X_FRAME_OPTIONS",[1082,6081,1138],{"class":1137},[1082,6083,1191],{"class":1190},[1082,6085,6086],{"class":1194},"DENY",[1082,6088,1198],{"class":1190},[1082,6090,6091],{"class":1084,"line":1388},[1082,6092,1121],{"emptyLinePlaceholder":1120},[1082,6094,6095],{"class":1084,"line":1400},[1082,6096,6097],{"class":1088},"# Session security\n",[1082,6099,6100,6103,6105,6107],{"class":1084,"line":1412},[1082,6101,6102],{"class":1133},"SESSION_COOKIE_SECURE",[1082,6104,1138],{"class":1137},[1082,6106,5066],{"class":1546},[1082,6108,6109],{"class":1133}," DEBUG\n",[1082,6111,6112,6115,6117],{"class":1084,"line":1424},[1082,6113,6114],{"class":1133},"SESSION_COOKIE_HTTPONLY",[1082,6116,1138],{"class":1137},[1082,6118,1221],{"class":1220},[1082,6120,6121,6124,6126,6128,6131],{"class":1084,"line":1436},[1082,6122,6123],{"class":1133},"SESSION_COOKIE_SAMESITE",[1082,6125,1138],{"class":1137},[1082,6127,1191],{"class":1190},[1082,6129,6130],{"class":1194},"Lax",[1082,6132,1198],{"class":1190},[1082,6134,6135,6137,6139,6142],{"class":1084,"line":1448},[1082,6136,2351],{"class":1133},[1082,6138,1138],{"class":1137},[1082,6140,6141],{"class":2597}," 3600",[1082,6143,6144],{"class":1088},"  # 1 hour\n",[1082,6146,6147],{"class":1084,"line":1460},[1082,6148,1121],{"emptyLinePlaceholder":1120},[1082,6150,6151],{"class":1084,"line":1465},[1082,6152,6153],{"class":1088},"# CSRF protection\n",[1082,6155,6156,6159,6161,6163],{"class":1084,"line":1470},[1082,6157,6158],{"class":1133},"CSRF_COOKIE_SECURE",[1082,6160,1138],{"class":1137},[1082,6162,5066],{"class":1546},[1082,6164,6109],{"class":1133},[1082,6166,6167,6170,6172],{"class":1084,"line":1485},[1082,6168,6169],{"class":1133},"CSRF_COOKIE_HTTPONLY",[1082,6171,1138],{"class":1137},[1082,6173,1221],{"class":1220},[1082,6175,6176,6179,6181,6183,6185],{"class":1084,"line":1490},[1082,6177,6178],{"class":1133},"CSRF_COOKIE_SAMESITE",[1082,6180,1138],{"class":1137},[1082,6182,1191],{"class":1190},[1082,6184,6130],{"class":1194},[1082,6186,1198],{"class":1190},[1082,6188,6189,6192,6194,6196,6198,6201,6203],{"class":1084,"line":1500},[1082,6190,6191],{"class":1133},"CSRF_TRUSTED_ORIGINS",[1082,6193,1138],{"class":1137},[1082,6195,1541],{"class":1137},[1082,6197,1271],{"class":1190},[1082,6199,6200],{"class":1194},"https://yourdomain.com",[1082,6202,1271],{"class":1190},[1082,6204,1358],{"class":1137},[1082,6206,6207],{"class":1084,"line":1506},[1082,6208,1121],{"emptyLinePlaceholder":1120},[1082,6210,6211],{"class":1084,"line":1529},[1082,6212,6213],{"class":1088},"# Database security\n",[1082,6215,6216,6218,6220],{"class":1084,"line":1560},[1082,6217,1713],{"class":1133},[1082,6219,1138],{"class":1137},[1082,6221,1589],{"class":1137},[1082,6223,6224,6226,6228,6230,6232],{"class":1084,"line":1577},[1082,6225,1265],{"class":1190},[1082,6227,1725],{"class":1194},[1082,6229,1271],{"class":1190},[1082,6231,1517],{"class":1137},[1082,6233,1589],{"class":1137},[1082,6235,6236,6238,6240,6242,6244,6246,6248,6250],{"class":1084,"line":1592},[1082,6237,1509],{"class":1190},[1082,6239,1739],{"class":1194},[1082,6241,1271],{"class":1190},[1082,6243,1517],{"class":1137},[1082,6245,1191],{"class":1190},[1082,6247,4086],{"class":1194},[1082,6249,1271],{"class":1190},[1082,6251,1274],{"class":1137},[1082,6253,6254,6256,6258,6260,6262,6264,6266,6268,6270,6272,6274,6276],{"class":1084,"line":1607},[1082,6255,1509],{"class":1190},[1082,6257,1760],{"class":1194},[1082,6259,1271],{"class":1190},[1082,6261,1517],{"class":1137},[1082,6263,3956],{"class":1099},[1082,6265,1165],{"class":1137},[1082,6267,3961],{"class":1141},[1082,6269,1145],{"class":1137},[1082,6271,1271],{"class":1190},[1082,6273,4113],{"class":1194},[1082,6275,1271],{"class":1190},[1082,6277,2964],{"class":1137},[1082,6279,6280,6282,6284,6286,6288,6290,6292,6294,6296,6298,6300,6302],{"class":1084,"line":1620},[1082,6281,1509],{"class":1190},[1082,6283,4124],{"class":1194},[1082,6285,1271],{"class":1190},[1082,6287,1517],{"class":1137},[1082,6289,3956],{"class":1099},[1082,6291,1165],{"class":1137},[1082,6293,3961],{"class":1141},[1082,6295,1145],{"class":1137},[1082,6297,1271],{"class":1190},[1082,6299,4141],{"class":1194},[1082,6301,1271],{"class":1190},[1082,6303,2964],{"class":1137},[1082,6305,6306,6308,6310,6312,6314,6316,6318,6320,6322,6324,6326,6328],{"class":1084,"line":1632},[1082,6307,1509],{"class":1190},[1082,6309,4152],{"class":1194},[1082,6311,1271],{"class":1190},[1082,6313,1517],{"class":1137},[1082,6315,3956],{"class":1099},[1082,6317,1165],{"class":1137},[1082,6319,3961],{"class":1141},[1082,6321,1145],{"class":1137},[1082,6323,1271],{"class":1190},[1082,6325,4169],{"class":1194},[1082,6327,1271],{"class":1190},[1082,6329,2964],{"class":1137},[1082,6331,6332,6334,6336,6338,6340,6342,6344,6346,6348,6350,6352,6354,6356,6358,6360,6362],{"class":1084,"line":1644},[1082,6333,1509],{"class":1190},[1082,6335,4180],{"class":1194},[1082,6337,1271],{"class":1190},[1082,6339,1517],{"class":1137},[1082,6341,3956],{"class":1099},[1082,6343,1165],{"class":1137},[1082,6345,3961],{"class":1141},[1082,6347,1145],{"class":1137},[1082,6349,1271],{"class":1190},[1082,6351,4197],{"class":1194},[1082,6353,1271],{"class":1190},[1082,6355,2206],{"class":1137},[1082,6357,1191],{"class":1190},[1082,6359,4206],{"class":1194},[1082,6361,1271],{"class":1190},[1082,6363,2964],{"class":1137},[1082,6365,6366,6368,6370,6372,6374,6376,6378,6380,6382,6384,6386,6388,6390,6392,6394,6396],{"class":1084,"line":1656},[1082,6367,1509],{"class":1190},[1082,6369,4217],{"class":1194},[1082,6371,1271],{"class":1190},[1082,6373,1517],{"class":1137},[1082,6375,3956],{"class":1099},[1082,6377,1165],{"class":1137},[1082,6379,3961],{"class":1141},[1082,6381,1145],{"class":1137},[1082,6383,1271],{"class":1190},[1082,6385,4234],{"class":1194},[1082,6387,1271],{"class":1190},[1082,6389,2206],{"class":1137},[1082,6391,1191],{"class":1190},[1082,6393,4243],{"class":1194},[1082,6395,1271],{"class":1190},[1082,6397,2964],{"class":1137},[1082,6399,6400,6402,6404,6406,6408],{"class":1084,"line":1662},[1082,6401,1509],{"class":1190},[1082,6403,1582],{"class":1194},[1082,6405,1271],{"class":1190},[1082,6407,1517],{"class":1137},[1082,6409,1589],{"class":1137},[1082,6411,6412,6414,6417,6419,6421,6423,6426,6428],{"class":1084,"line":1668},[1082,6413,1595],{"class":1190},[1082,6415,6416],{"class":1194},"sslmode",[1082,6418,1271],{"class":1190},[1082,6420,1517],{"class":1137},[1082,6422,1191],{"class":1190},[1082,6424,6425],{"class":1194},"require",[1082,6427,1271],{"class":1190},[1082,6429,1274],{"class":1137},[1082,6431,6432],{"class":1084,"line":1674},[1082,6433,1665],{"class":1137},[1082,6435,6436],{"class":1084,"line":1679},[1082,6437,1784],{"class":1137},[1082,6439,6440],{"class":1084,"line":1684},[1082,6441,1790],{"class":1137},[1082,6443,6444],{"class":1084,"line":1699},[1082,6445,1121],{"emptyLinePlaceholder":1120},[1082,6447,6448],{"class":1084,"line":1704},[1082,6449,6450],{"class":1088},"# File upload security\n",[1082,6452,6453,6455,6457,6460],{"class":1084,"line":1710},[1082,6454,2665],{"class":1133},[1082,6456,1138],{"class":1137},[1082,6458,6459],{"class":2597}," 5242880",[1082,6461,6462],{"class":1088},"  # 5MB\n",[1082,6464,6465,6467,6469,6471],{"class":1084,"line":1720},[1082,6466,2678],{"class":1133},[1082,6468,1138],{"class":1137},[1082,6470,6459],{"class":2597},[1082,6472,6462],{"class":1088},[1082,6474,6475,6478,6480,6483],{"class":1084,"line":1734},[1082,6476,6477],{"class":1133},"FILE_UPLOAD_PERMISSIONS",[1082,6479,1138],{"class":1137},[1082,6481,6482],{"class":2021}," 0o",[1082,6484,6485],{"class":2597},"644\n",[1082,6487,6488],{"class":1084,"line":1755},[1082,6489,1121],{"emptyLinePlaceholder":1120},[1082,6491,6492],{"class":1084,"line":1781},[1082,6493,6494],{"class":1088},"# Password validation\n",[1082,6496,6497,6500,6502],{"class":1084,"line":1787},[1082,6498,6499],{"class":1133},"AUTH_PASSWORD_VALIDATORS",[1082,6501,1138],{"class":1137},[1082,6503,1259],{"class":1137},[1082,6505,6506],{"class":1084,"line":1793},[1082,6507,1503],{"class":1137},[1082,6509,6510,6512,6514,6516,6518,6520,6523,6525],{"class":1084,"line":1798},[1082,6511,1509],{"class":1190},[1082,6513,1760],{"class":1194},[1082,6515,1271],{"class":1190},[1082,6517,1517],{"class":1137},[1082,6519,1191],{"class":1190},[1082,6521,6522],{"class":1194},"django.contrib.auth.password_validation.UserAttributeSimilarityValidator",[1082,6524,1271],{"class":1190},[1082,6526,1274],{"class":1137},[1082,6528,6529],{"class":1084,"line":1804},[1082,6530,1671],{"class":1137},[1082,6532,6533],{"class":1084,"line":1819},[1082,6534,1503],{"class":1137},[1082,6536,6537,6539,6541,6543,6545,6547,6550,6552],{"class":1084,"line":1834},[1082,6538,1509],{"class":1190},[1082,6540,1760],{"class":1194},[1082,6542,1271],{"class":1190},[1082,6544,1517],{"class":1137},[1082,6546,1191],{"class":1190},[1082,6548,6549],{"class":1194},"django.contrib.auth.password_validation.MinimumLengthValidator",[1082,6551,1271],{"class":1190},[1082,6553,1274],{"class":1137},[1082,6555,6556,6558,6560,6562,6564],{"class":1084,"line":1844},[1082,6557,1509],{"class":1190},[1082,6559,1582],{"class":1194},[1082,6561,1271],{"class":1190},[1082,6563,1517],{"class":1137},[1082,6565,1589],{"class":1137},[1082,6567,6568,6570,6572,6574,6576,6579],{"class":1084,"line":1854},[1082,6569,1595],{"class":1190},[1082,6571,3448],{"class":1194},[1082,6573,1271],{"class":1190},[1082,6575,1517],{"class":1137},[1082,6577,6578],{"class":2597}," 12",[1082,6580,1274],{"class":1137},[1082,6582,6583],{"class":1084,"line":1859},[1082,6584,4252],{"class":1137},[1082,6586,6587],{"class":1084,"line":1865},[1082,6588,1671],{"class":1137},[1082,6590,6591],{"class":1084,"line":1880},[1082,6592,1503],{"class":1137},[1082,6594,6595,6597,6599,6601,6603,6605,6608,6610],{"class":1084,"line":1903},[1082,6596,1509],{"class":1190},[1082,6598,1760],{"class":1194},[1082,6600,1271],{"class":1190},[1082,6602,1517],{"class":1137},[1082,6604,1191],{"class":1190},[1082,6606,6607],{"class":1194},"django.contrib.auth.password_validation.CommonPasswordValidator",[1082,6609,1271],{"class":1190},[1082,6611,1274],{"class":1137},[1082,6613,6614],{"class":1084,"line":1922},[1082,6615,1671],{"class":1137},[1082,6617,6618],{"class":1084,"line":1927},[1082,6619,1503],{"class":1137},[1082,6621,6622,6624,6626,6628,6630,6632,6635,6637],{"class":1084,"line":1933},[1082,6623,1509],{"class":1190},[1082,6625,1760],{"class":1194},[1082,6627,1271],{"class":1190},[1082,6629,1517],{"class":1137},[1082,6631,1191],{"class":1190},[1082,6633,6634],{"class":1194},"django.contrib.auth.password_validation.NumericPasswordValidator",[1082,6636,1271],{"class":1190},[1082,6638,1274],{"class":1137},[1082,6640,6641],{"class":1084,"line":1948},[1082,6642,1671],{"class":1137},[1082,6644,6645],{"class":1084,"line":1967},[1082,6646,1358],{"class":1137},[1082,6648,6649],{"class":1084,"line":1972},[1082,6650,1121],{"emptyLinePlaceholder":1120},[1082,6652,6653],{"class":1084,"line":1978},[1082,6654,6655],{"class":1088},"# Logging security events\n",[1082,6657,6658,6661,6663],{"class":1084,"line":4996},[1082,6659,6660],{"class":1133},"LOGGING",[1082,6662,1138],{"class":1137},[1082,6664,1589],{"class":1137},[1082,6666,6668,6670,6673,6675,6677,6680],{"class":1084,"line":6667},84,[1082,6669,1265],{"class":1190},[1082,6671,6672],{"class":1194},"version",[1082,6674,1271],{"class":1190},[1082,6676,1517],{"class":1137},[1082,6678,6679],{"class":2597}," 1",[1082,6681,1274],{"class":1137},[1082,6683,6685,6687,6690,6692,6694,6697],{"class":1084,"line":6684},85,[1082,6686,1265],{"class":1190},[1082,6688,6689],{"class":1194},"disable_existing_loggers",[1082,6691,1271],{"class":1190},[1082,6693,1517],{"class":1137},[1082,6695,6696],{"class":1220}," False",[1082,6698,1274],{"class":1137},[1082,6700,6702,6704,6707,6709,6711],{"class":1084,"line":6701},86,[1082,6703,1265],{"class":1190},[1082,6705,6706],{"class":1194},"handlers",[1082,6708,1271],{"class":1190},[1082,6710,1517],{"class":1137},[1082,6712,1589],{"class":1137},[1082,6714,6716,6718,6721,6723,6725],{"class":1084,"line":6715},87,[1082,6717,1509],{"class":1190},[1082,6719,6720],{"class":1194},"security_file",[1082,6722,1271],{"class":1190},[1082,6724,1517],{"class":1137},[1082,6726,1589],{"class":1137},[1082,6728,6730,6732,6735,6737,6739,6741,6744,6746],{"class":1084,"line":6729},88,[1082,6731,1595],{"class":1190},[1082,6733,6734],{"class":1194},"level",[1082,6736,1271],{"class":1190},[1082,6738,1517],{"class":1137},[1082,6740,1191],{"class":1190},[1082,6742,6743],{"class":1194},"WARNING",[1082,6745,1271],{"class":1190},[1082,6747,1274],{"class":1137},[1082,6749,6751,6753,6755,6757,6759,6761,6764,6766],{"class":1084,"line":6750},89,[1082,6752,1595],{"class":1190},[1082,6754,3017],{"class":1194},[1082,6756,1271],{"class":1190},[1082,6758,1517],{"class":1137},[1082,6760,1191],{"class":1190},[1082,6762,6763],{"class":1194},"logging.FileHandler",[1082,6765,1271],{"class":1190},[1082,6767,1274],{"class":1137},[1082,6769,6771,6773,6776,6778,6780,6782,6785,6787],{"class":1084,"line":6770},90,[1082,6772,1595],{"class":1190},[1082,6774,6775],{"class":1194},"filename",[1082,6777,1271],{"class":1190},[1082,6779,1517],{"class":1137},[1082,6781,1191],{"class":1190},[1082,6783,6784],{"class":1194},"security.log",[1082,6786,1271],{"class":1190},[1082,6788,1274],{"class":1137},[1082,6790,6792],{"class":1084,"line":6791},91,[1082,6793,1665],{"class":1137},[1082,6795,6797],{"class":1084,"line":6796},92,[1082,6798,1671],{"class":1137},[1082,6800,6802,6804,6807,6809,6811],{"class":1084,"line":6801},93,[1082,6803,1265],{"class":1190},[1082,6805,6806],{"class":1194},"loggers",[1082,6808,1271],{"class":1190},[1082,6810,1517],{"class":1137},[1082,6812,1589],{"class":1137},[1082,6814,6816,6818,6821,6823,6825],{"class":1084,"line":6815},94,[1082,6817,1509],{"class":1190},[1082,6819,6820],{"class":1194},"django.security",[1082,6822,1271],{"class":1190},[1082,6824,1517],{"class":1137},[1082,6826,1589],{"class":1137},[1082,6828,6830,6832,6834,6836,6838,6840,6842,6844,6846],{"class":1084,"line":6829},95,[1082,6831,1595],{"class":1190},[1082,6833,6706],{"class":1194},[1082,6835,1271],{"class":1190},[1082,6837,1517],{"class":1137},[1082,6839,1541],{"class":1137},[1082,6841,1271],{"class":1190},[1082,6843,6720],{"class":1194},[1082,6845,1271],{"class":1190},[1082,6847,1557],{"class":1137},[1082,6849,6851,6853,6855,6857,6859,6861,6863,6865],{"class":1084,"line":6850},96,[1082,6852,1595],{"class":1190},[1082,6854,6734],{"class":1194},[1082,6856,1271],{"class":1190},[1082,6858,1517],{"class":1137},[1082,6860,1191],{"class":1190},[1082,6862,6743],{"class":1194},[1082,6864,1271],{"class":1190},[1082,6866,1274],{"class":1137},[1082,6868,6870,6872,6875,6877,6879,6881],{"class":1084,"line":6869},97,[1082,6871,1595],{"class":1190},[1082,6873,6874],{"class":1194},"propagate",[1082,6876,1271],{"class":1190},[1082,6878,1517],{"class":1137},[1082,6880,1572],{"class":1220},[1082,6882,1274],{"class":1137},[1082,6884,6886],{"class":1084,"line":6885},98,[1082,6887,1665],{"class":1137},[1082,6889,6891],{"class":1084,"line":6890},99,[1082,6892,1671],{"class":1137},[1082,6894,6896],{"class":1084,"line":6895},100,[1082,6897,1790],{"class":1137},[1035,6899,6901],{"id":6900},"environment-variables-for-security","Environment Variables for Security",[1072,6903,6905],{"className":2007,"code":6904,"language":2009,"meta":1077,"style":1077},"# .env file (never commit to version control)\nSECRET_KEY=your-very-long-random-secret-key-here\nDEBUG=False\nALLOWED_HOSTS=yourdomain.com,www.yourdomain.com\n\n# Database\nDB_NAME=myproject_prod\nDB_USER=myproject_user\nDB_PASSWORD=secure-database-password\nDB_HOST=localhost\nDB_PORT=5432\n\n# Email\nEMAIL_HOST=smtp.gmail.com\nEMAIL_PORT=587\nEMAIL_HOST_USER=your-email@gmail.com\nEMAIL_HOST_PASSWORD=your-app-password\n\n# Third-party services\nAWS_ACCESS_KEY_ID=your-aws-access-key\nAWS_SECRET_ACCESS_KEY=your-aws-secret-key\nSTRIPE_PUBLIC_KEY=pk_live_...\nSTRIPE_SECRET_KEY=sk_live_...\n",[1079,6906,6907,6912,6921,6930,6939,6943,6947,6956,6965,6974,6983,6992,6996,7001,7011,7021,7031,7041,7045,7050,7060,7070,7080],{"__ignoreMap":1077},[1082,6908,6909],{"class":1084,"line":1085},[1082,6910,6911],{"class":1088},"# .env file (never commit to version control)\n",[1082,6913,6914,6916,6918],{"class":1084,"line":1092},[1082,6915,1185],{"class":2025},[1082,6917,2029],{"class":1137},[1082,6919,6920],{"class":1194},"your-very-long-random-secret-key-here\n",[1082,6922,6923,6925,6927],{"class":1084,"line":1103},[1082,6924,1215],{"class":2025},[1082,6926,2029],{"class":1137},[1082,6928,6929],{"class":1194},"False\n",[1082,6931,6932,6934,6936],{"class":1084,"line":1117},[1082,6933,1232],{"class":2025},[1082,6935,2029],{"class":1137},[1082,6937,6938],{"class":1194},"yourdomain.com,www.yourdomain.com\n",[1082,6940,6941],{"class":1084,"line":1124},[1082,6942,1121],{"emptyLinePlaceholder":1120},[1082,6944,6945],{"class":1084,"line":1130},[1082,6946,1707],{"class":1088},[1082,6948,6949,6951,6953],{"class":1084,"line":1171},[1082,6950,4113],{"class":2025},[1082,6952,2029],{"class":1137},[1082,6954,6955],{"class":1194},"myproject_prod\n",[1082,6957,6958,6960,6962],{"class":1084,"line":1176},[1082,6959,4141],{"class":2025},[1082,6961,2029],{"class":1137},[1082,6963,6964],{"class":1194},"myproject_user\n",[1082,6966,6967,6969,6971],{"class":1084,"line":1182},[1082,6968,4169],{"class":2025},[1082,6970,2029],{"class":1137},[1082,6972,6973],{"class":1194},"secure-database-password\n",[1082,6975,6976,6978,6980],{"class":1084,"line":1201},[1082,6977,4197],{"class":2025},[1082,6979,2029],{"class":1137},[1082,6981,6982],{"class":1194},"localhost\n",[1082,6984,6985,6987,6989],{"class":1084,"line":1206},[1082,6986,4234],{"class":2025},[1082,6988,2029],{"class":1137},[1082,6990,6991],{"class":1194},"5432\n",[1082,6993,6994],{"class":1084,"line":1212},[1082,6995,1121],{"emptyLinePlaceholder":1120},[1082,6997,6998],{"class":1084,"line":1224},[1082,6999,7000],{"class":1088},"# Email\n",[1082,7002,7003,7006,7008],{"class":1084,"line":1229},[1082,7004,7005],{"class":2025},"EMAIL_HOST",[1082,7007,2029],{"class":1137},[1082,7009,7010],{"class":1194},"smtp.gmail.com\n",[1082,7012,7013,7016,7018],{"class":1084,"line":1240},[1082,7014,7015],{"class":2025},"EMAIL_PORT",[1082,7017,2029],{"class":1137},[1082,7019,7020],{"class":1194},"587\n",[1082,7022,7023,7026,7028],{"class":1084,"line":1245},[1082,7024,7025],{"class":2025},"EMAIL_HOST_USER",[1082,7027,2029],{"class":1137},[1082,7029,7030],{"class":1194},"your-email@gmail.com\n",[1082,7032,7033,7036,7038],{"class":1084,"line":1251},[1082,7034,7035],{"class":2025},"EMAIL_HOST_PASSWORD",[1082,7037,2029],{"class":1137},[1082,7039,7040],{"class":1194},"your-app-password\n",[1082,7042,7043],{"class":1084,"line":1262},[1082,7044,1121],{"emptyLinePlaceholder":1120},[1082,7046,7047],{"class":1084,"line":1277},[1082,7048,7049],{"class":1088},"# Third-party services\n",[1082,7051,7052,7055,7057],{"class":1084,"line":1289},[1082,7053,7054],{"class":2025},"AWS_ACCESS_KEY_ID",[1082,7056,2029],{"class":1137},[1082,7058,7059],{"class":1194},"your-aws-access-key\n",[1082,7061,7062,7065,7067],{"class":1084,"line":1301},[1082,7063,7064],{"class":2025},"AWS_SECRET_ACCESS_KEY",[1082,7066,2029],{"class":1137},[1082,7068,7069],{"class":1194},"your-aws-secret-key\n",[1082,7071,7072,7075,7077],{"class":1084,"line":1313},[1082,7073,7074],{"class":2025},"STRIPE_PUBLIC_KEY",[1082,7076,2029],{"class":1137},[1082,7078,7079],{"class":1194},"pk_live_...\n",[1082,7081,7082,7085,7087],{"class":1084,"line":1325},[1082,7083,7084],{"class":2025},"STRIPE_SECRET_KEY",[1082,7086,2029],{"class":1137},[1082,7088,7089],{"class":1194},"sk_live_...\n",[1072,7091,7093],{"className":1074,"code":7092,"language":1076,"meta":1077,"style":1077},"# Load environment variables\nimport os\nfrom pathlib import Path\nfrom dotenv import load_dotenv\n\n# Load .env file\nload_dotenv()\n\n# Or use django-environ\nimport environ\n\nenv = environ.Env(\n    DEBUG=(bool, False),\n    ALLOWED_HOSTS=(list, []),\n)\n\n# Read .env file\nenviron.Env.read_env(BASE_DIR / '.env')\n\n# Use environment variables\nSECRET_KEY = env('SECRET_KEY')\nDEBUG = env('DEBUG')\nALLOWED_HOSTS = env('ALLOWED_HOSTS')\n\nDATABASES = {\n    'default': env.db()  # Parses DATABASE_URL\n}\n",[1079,7094,7095,7100,7106,7116,7128,7132,7137,7144,7148,7153,7160,7164,7181,7197,7211,7215,7219,7224,7253,7257,7262,7281,7299,7317,7321,7329,7351],{"__ignoreMap":1077},[1082,7096,7097],{"class":1084,"line":1085},[1082,7098,7099],{"class":1088},"# Load environment variables\n",[1082,7101,7102,7104],{"class":1084,"line":1092},[1082,7103,1096],{"class":1095},[1082,7105,1100],{"class":1099},[1082,7107,7108,7110,7112,7114],{"class":1084,"line":1103},[1082,7109,1106],{"class":1095},[1082,7111,1109],{"class":1099},[1082,7113,1096],{"class":1095},[1082,7115,1114],{"class":1099},[1082,7117,7118,7120,7123,7125],{"class":1084,"line":1117},[1082,7119,1106],{"class":1095},[1082,7121,7122],{"class":1099}," dotenv ",[1082,7124,1096],{"class":1095},[1082,7126,7127],{"class":1099}," load_dotenv\n",[1082,7129,7130],{"class":1084,"line":1124},[1082,7131,1121],{"emptyLinePlaceholder":1120},[1082,7133,7134],{"class":1084,"line":1130},[1082,7135,7136],{"class":1088},"# Load .env file\n",[1082,7138,7139,7142],{"class":1084,"line":1171},[1082,7140,7141],{"class":1141},"load_dotenv",[1082,7143,2229],{"class":1137},[1082,7145,7146],{"class":1084,"line":1176},[1082,7147,1121],{"emptyLinePlaceholder":1120},[1082,7149,7150],{"class":1084,"line":1182},[1082,7151,7152],{"class":1088},"# Or use django-environ\n",[1082,7154,7155,7157],{"class":1084,"line":1201},[1082,7156,1096],{"class":1095},[1082,7158,7159],{"class":1099}," environ\n",[1082,7161,7162],{"class":1084,"line":1206},[1082,7163,1121],{"emptyLinePlaceholder":1120},[1082,7165,7166,7169,7171,7174,7176,7179],{"class":1084,"line":1212},[1082,7167,7168],{"class":1099},"env ",[1082,7170,2029],{"class":1137},[1082,7172,7173],{"class":1099}," environ",[1082,7175,1165],{"class":1137},[1082,7177,7178],{"class":1141},"Env",[1082,7180,3272],{"class":1137},[1082,7182,7183,7185,7188,7191,7193,7195],{"class":1084,"line":1224},[1082,7184,4010],{"class":3062},[1082,7186,7187],{"class":1137},"=(",[1082,7189,7190],{"class":5307},"bool",[1082,7192,2206],{"class":1137},[1082,7194,6696],{"class":1220},[1082,7196,2964],{"class":1137},[1082,7198,7199,7201,7203,7206,7208],{"class":1084,"line":1229},[1082,7200,4019],{"class":3062},[1082,7202,7187],{"class":1137},[1082,7204,7205],{"class":5307},"list",[1082,7207,2206],{"class":1137},[1082,7209,7210],{"class":1137}," []),\n",[1082,7212,7213],{"class":1084,"line":1240},[1082,7214,2216],{"class":1137},[1082,7216,7217],{"class":1084,"line":1245},[1082,7218,1121],{"emptyLinePlaceholder":1120},[1082,7220,7221],{"class":1084,"line":1251},[1082,7222,7223],{"class":1088},"# Read .env file\n",[1082,7225,7226,7228,7230,7232,7234,7237,7239,7242,7244,7246,7249,7251],{"class":1084,"line":1262},[1082,7227,2190],{"class":1099},[1082,7229,1165],{"class":1137},[1082,7231,7178],{"class":1161},[1082,7233,1165],{"class":1137},[1082,7235,7236],{"class":1141},"read_env",[1082,7238,1145],{"class":1137},[1082,7240,1134],{"class":7241},"s6DHA",[1082,7243,1547],{"class":1546},[1082,7245,1191],{"class":1190},[1082,7247,7248],{"class":1194},".env",[1082,7250,1271],{"class":1190},[1082,7252,2216],{"class":1137},[1082,7254,7255],{"class":1084,"line":1277},[1082,7256,1121],{"emptyLinePlaceholder":1120},[1082,7258,7259],{"class":1084,"line":1289},[1082,7260,7261],{"class":1088},"# Use environment variables\n",[1082,7263,7264,7266,7268,7271,7273,7275,7277,7279],{"class":1084,"line":1301},[1082,7265,1185],{"class":1133},[1082,7267,1138],{"class":1137},[1082,7269,7270],{"class":1141}," env",[1082,7272,1145],{"class":1137},[1082,7274,1271],{"class":1190},[1082,7276,1185],{"class":1194},[1082,7278,1271],{"class":1190},[1082,7280,2216],{"class":1137},[1082,7282,7283,7285,7287,7289,7291,7293,7295,7297],{"class":1084,"line":1313},[1082,7284,1215],{"class":1133},[1082,7286,1138],{"class":1137},[1082,7288,7270],{"class":1141},[1082,7290,1145],{"class":1137},[1082,7292,1271],{"class":1190},[1082,7294,1215],{"class":1194},[1082,7296,1271],{"class":1190},[1082,7298,2216],{"class":1137},[1082,7300,7301,7303,7305,7307,7309,7311,7313,7315],{"class":1084,"line":1325},[1082,7302,1232],{"class":1133},[1082,7304,1138],{"class":1137},[1082,7306,7270],{"class":1141},[1082,7308,1145],{"class":1137},[1082,7310,1271],{"class":1190},[1082,7312,1232],{"class":1194},[1082,7314,1271],{"class":1190},[1082,7316,2216],{"class":1137},[1082,7318,7319],{"class":1084,"line":1337},[1082,7320,1121],{"emptyLinePlaceholder":1120},[1082,7322,7323,7325,7327],{"class":1084,"line":1343},[1082,7324,1713],{"class":1133},[1082,7326,1138],{"class":1137},[1082,7328,1589],{"class":1137},[1082,7330,7331,7333,7335,7337,7339,7341,7343,7346,7348],{"class":1084,"line":1355},[1082,7332,1265],{"class":1190},[1082,7334,1725],{"class":1194},[1082,7336,1271],{"class":1190},[1082,7338,1517],{"class":1137},[1082,7340,7270],{"class":1099},[1082,7342,1165],{"class":1137},[1082,7344,7345],{"class":1141},"db",[1082,7347,4681],{"class":1137},[1082,7349,7350],{"class":1088},"  # Parses DATABASE_URL\n",[1082,7352,7353],{"class":1084,"line":1361},[1082,7354,1790],{"class":1137},[1030,7356,7358],{"id":7357},"available-settings","Available Settings",[1035,7360,7362],{"id":7361},"core-django-settings","Core Django Settings",[1072,7364,7366],{"className":1074,"code":7365,"language":1076,"meta":1077,"style":1077},"# Essential settings every Django project needs\n\n# Project basics\nBASE_DIR = Path(__file__).resolve().parent.parent\nSECRET_KEY = 'your-secret-key'\nDEBUG = False\nALLOWED_HOSTS = []\n\n# Applications and middleware\nINSTALLED_APPS = [\n    'django.contrib.admin',\n    'django.contrib.auth',\n    'django.contrib.contenttypes',\n    'django.contrib.sessions',\n    'django.contrib.messages',\n    'django.contrib.staticfiles',\n]\n\nMIDDLEWARE = [\n    'django.middleware.security.SecurityMiddleware',\n    'django.contrib.sessions.middleware.SessionMiddleware',\n    'django.middleware.common.CommonMiddleware',\n    'django.middleware.csrf.CsrfViewMiddleware',\n    'django.contrib.auth.middleware.AuthenticationMiddleware',\n    'django.contrib.messages.middleware.MessageMiddleware',\n    'django.middleware.clickjacking.XFrameOptionsMiddleware',\n]\n\n# URL configuration\nROOT_URLCONF = 'myproject.urls'\n\n# Templates\nTEMPLATES = [\n    {\n        'BACKEND': 'django.template.backends.django.DjangoTemplates',\n        'DIRS': [BASE_DIR / 'templates'],\n        'APP_DIRS': True,\n        'OPTIONS': {\n            'context_processors': [\n                'django.template.context_processors.debug',\n                'django.template.context_processors.request',\n                'django.contrib.auth.context_processors.auth',\n                'django.contrib.messages.context_processors.messages',\n            ],\n        },\n    },\n]\n\n# WSGI/ASGI\nWSGI_APPLICATION = 'myproject.wsgi.application'\nASGI_APPLICATION = 'myproject.asgi.application'\n\n# Database\nDATABASES = {\n    'default': {\n        'ENGINE': 'django.db.backends.postgresql',\n        'NAME': 'myproject',\n        'USER': 'myproject_user',\n        'PASSWORD': 'password',\n        'HOST': 'localhost',\n        'PORT': '5432',\n    }\n}\n\n# Internationalization\nLANGUAGE_CODE = 'en-us'\nTIME_ZONE = 'UTC'\nUSE_I18N = True\nUSE_TZ = True\n\n# Static files\nSTATIC_URL = '/static/'\nSTATIC_ROOT = BASE_DIR / 'staticfiles'\nSTATICFILES_DIRS = [BASE_DIR / 'static']\n\n# Media files\nMEDIA_URL = '/media/'\nMEDIA_ROOT = BASE_DIR / 'media'\n\n# Default primary key field type\nDEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'\n",[1079,7367,7368,7373,7377,7382,7406,7419,7427,7435,7439,7444,7452,7462,7472,7482,7492,7502,7512,7516,7520,7528,7538,7548,7558,7568,7578,7588,7598,7602,7606,7611,7623,7627,7631,7639,7643,7661,7685,7699,7711,7723,7733,7743,7753,7763,7767,7771,7775,7779,7783,7788,7800,7814,7818,7822,7830,7842,7860,7878,7897,7916,7934,7952,7956,7960,7964,7968,7980,7992,8000,8008,8012,8016,8028,8044,8064,8068,8072,8084,8100,8104,8108],{"__ignoreMap":1077},[1082,7369,7370],{"class":1084,"line":1085},[1082,7371,7372],{"class":1088},"# Essential settings every Django project needs\n",[1082,7374,7375],{"class":1084,"line":1092},[1082,7376,1121],{"emptyLinePlaceholder":1120},[1082,7378,7379],{"class":1084,"line":1103},[1082,7380,7381],{"class":1088},"# Project basics\n",[1082,7383,7384,7386,7388,7390,7392,7394,7396,7398,7400,7402,7404],{"class":1084,"line":1117},[1082,7385,1134],{"class":1133},[1082,7387,1138],{"class":1137},[1082,7389,1142],{"class":1141},[1082,7391,1145],{"class":1137},[1082,7393,1149],{"class":1148},[1082,7395,1152],{"class":1137},[1082,7397,1155],{"class":1141},[1082,7399,1158],{"class":1137},[1082,7401,1162],{"class":1161},[1082,7403,1165],{"class":1137},[1082,7405,1168],{"class":1161},[1082,7407,7408,7410,7412,7414,7417],{"class":1084,"line":1124},[1082,7409,1185],{"class":1133},[1082,7411,1138],{"class":1137},[1082,7413,1191],{"class":1190},[1082,7415,7416],{"class":1194},"your-secret-key",[1082,7418,1198],{"class":1190},[1082,7420,7421,7423,7425],{"class":1084,"line":1130},[1082,7422,1215],{"class":1133},[1082,7424,1138],{"class":1137},[1082,7426,2400],{"class":1220},[1082,7428,7429,7431,7433],{"class":1084,"line":1171},[1082,7430,1232],{"class":1133},[1082,7432,1138],{"class":1137},[1082,7434,1237],{"class":1137},[1082,7436,7437],{"class":1084,"line":1176},[1082,7438,1121],{"emptyLinePlaceholder":1120},[1082,7440,7441],{"class":1084,"line":1182},[1082,7442,7443],{"class":1088},"# Applications and middleware\n",[1082,7445,7446,7448,7450],{"class":1084,"line":1201},[1082,7447,1254],{"class":1133},[1082,7449,1138],{"class":1137},[1082,7451,1259],{"class":1137},[1082,7453,7454,7456,7458,7460],{"class":1084,"line":1206},[1082,7455,1265],{"class":1190},[1082,7457,1268],{"class":1194},[1082,7459,1271],{"class":1190},[1082,7461,1274],{"class":1137},[1082,7463,7464,7466,7468,7470],{"class":1084,"line":1212},[1082,7465,1265],{"class":1190},[1082,7467,1282],{"class":1194},[1082,7469,1271],{"class":1190},[1082,7471,1274],{"class":1137},[1082,7473,7474,7476,7478,7480],{"class":1084,"line":1224},[1082,7475,1265],{"class":1190},[1082,7477,1294],{"class":1194},[1082,7479,1271],{"class":1190},[1082,7481,1274],{"class":1137},[1082,7483,7484,7486,7488,7490],{"class":1084,"line":1229},[1082,7485,1265],{"class":1190},[1082,7487,1306],{"class":1194},[1082,7489,1271],{"class":1190},[1082,7491,1274],{"class":1137},[1082,7493,7494,7496,7498,7500],{"class":1084,"line":1240},[1082,7495,1265],{"class":1190},[1082,7497,1318],{"class":1194},[1082,7499,1271],{"class":1190},[1082,7501,1274],{"class":1137},[1082,7503,7504,7506,7508,7510],{"class":1084,"line":1245},[1082,7505,1265],{"class":1190},[1082,7507,1330],{"class":1194},[1082,7509,1271],{"class":1190},[1082,7511,1274],{"class":1137},[1082,7513,7514],{"class":1084,"line":1251},[1082,7515,1358],{"class":1137},[1082,7517,7518],{"class":1084,"line":1262},[1082,7519,1121],{"emptyLinePlaceholder":1120},[1082,7521,7522,7524,7526],{"class":1084,"line":1277},[1082,7523,1369],{"class":1133},[1082,7525,1138],{"class":1137},[1082,7527,1259],{"class":1137},[1082,7529,7530,7532,7534,7536],{"class":1084,"line":1289},[1082,7531,1265],{"class":1190},[1082,7533,1381],{"class":1194},[1082,7535,1271],{"class":1190},[1082,7537,1274],{"class":1137},[1082,7539,7540,7542,7544,7546],{"class":1084,"line":1301},[1082,7541,1265],{"class":1190},[1082,7543,1393],{"class":1194},[1082,7545,1271],{"class":1190},[1082,7547,1274],{"class":1137},[1082,7549,7550,7552,7554,7556],{"class":1084,"line":1313},[1082,7551,1265],{"class":1190},[1082,7553,1405],{"class":1194},[1082,7555,1271],{"class":1190},[1082,7557,1274],{"class":1137},[1082,7559,7560,7562,7564,7566],{"class":1084,"line":1325},[1082,7561,1265],{"class":1190},[1082,7563,1417],{"class":1194},[1082,7565,1271],{"class":1190},[1082,7567,1274],{"class":1137},[1082,7569,7570,7572,7574,7576],{"class":1084,"line":1337},[1082,7571,1265],{"class":1190},[1082,7573,1429],{"class":1194},[1082,7575,1271],{"class":1190},[1082,7577,1274],{"class":1137},[1082,7579,7580,7582,7584,7586],{"class":1084,"line":1343},[1082,7581,1265],{"class":1190},[1082,7583,1441],{"class":1194},[1082,7585,1271],{"class":1190},[1082,7587,1274],{"class":1137},[1082,7589,7590,7592,7594,7596],{"class":1084,"line":1355},[1082,7591,1265],{"class":1190},[1082,7593,1453],{"class":1194},[1082,7595,1271],{"class":1190},[1082,7597,1274],{"class":1137},[1082,7599,7600],{"class":1084,"line":1361},[1082,7601,1358],{"class":1137},[1082,7603,7604],{"class":1084,"line":1366},[1082,7605,1121],{"emptyLinePlaceholder":1120},[1082,7607,7608],{"class":1084,"line":1376},[1082,7609,7610],{"class":1088},"# URL configuration\n",[1082,7612,7613,7615,7617,7619,7621],{"class":1084,"line":1388},[1082,7614,1473],{"class":1133},[1082,7616,1138],{"class":1137},[1082,7618,1191],{"class":1190},[1082,7620,1480],{"class":1194},[1082,7622,1198],{"class":1190},[1082,7624,7625],{"class":1084,"line":1400},[1082,7626,1121],{"emptyLinePlaceholder":1120},[1082,7628,7629],{"class":1084,"line":1412},[1082,7630,2471],{"class":1088},[1082,7632,7633,7635,7637],{"class":1084,"line":1424},[1082,7634,1493],{"class":1133},[1082,7636,1138],{"class":1137},[1082,7638,1259],{"class":1137},[1082,7640,7641],{"class":1084,"line":1436},[1082,7642,1503],{"class":1137},[1082,7644,7645,7647,7649,7651,7653,7655,7657,7659],{"class":1084,"line":1448},[1082,7646,1509],{"class":1190},[1082,7648,1512],{"class":1194},[1082,7650,1271],{"class":1190},[1082,7652,1517],{"class":1137},[1082,7654,1191],{"class":1190},[1082,7656,1522],{"class":1194},[1082,7658,1271],{"class":1190},[1082,7660,1274],{"class":1137},[1082,7662,7663,7665,7667,7669,7671,7673,7675,7677,7679,7681,7683],{"class":1084,"line":1460},[1082,7664,1509],{"class":1190},[1082,7666,1534],{"class":1194},[1082,7668,1271],{"class":1190},[1082,7670,1517],{"class":1137},[1082,7672,1541],{"class":1137},[1082,7674,1134],{"class":1133},[1082,7676,1547],{"class":1546},[1082,7678,1191],{"class":1190},[1082,7680,1552],{"class":1194},[1082,7682,1271],{"class":1190},[1082,7684,1557],{"class":1137},[1082,7686,7687,7689,7691,7693,7695,7697],{"class":1084,"line":1465},[1082,7688,1509],{"class":1190},[1082,7690,1565],{"class":1194},[1082,7692,1271],{"class":1190},[1082,7694,1517],{"class":1137},[1082,7696,1572],{"class":1220},[1082,7698,1274],{"class":1137},[1082,7700,7701,7703,7705,7707,7709],{"class":1084,"line":1470},[1082,7702,1509],{"class":1190},[1082,7704,1582],{"class":1194},[1082,7706,1271],{"class":1190},[1082,7708,1517],{"class":1137},[1082,7710,1589],{"class":1137},[1082,7712,7713,7715,7717,7719,7721],{"class":1084,"line":1485},[1082,7714,1595],{"class":1190},[1082,7716,1598],{"class":1194},[1082,7718,1271],{"class":1190},[1082,7720,1517],{"class":1137},[1082,7722,1259],{"class":1137},[1082,7724,7725,7727,7729,7731],{"class":1084,"line":1490},[1082,7726,1610],{"class":1190},[1082,7728,1613],{"class":1194},[1082,7730,1271],{"class":1190},[1082,7732,1274],{"class":1137},[1082,7734,7735,7737,7739,7741],{"class":1084,"line":1500},[1082,7736,1610],{"class":1190},[1082,7738,1625],{"class":1194},[1082,7740,1271],{"class":1190},[1082,7742,1274],{"class":1137},[1082,7744,7745,7747,7749,7751],{"class":1084,"line":1506},[1082,7746,1610],{"class":1190},[1082,7748,1637],{"class":1194},[1082,7750,1271],{"class":1190},[1082,7752,1274],{"class":1137},[1082,7754,7755,7757,7759,7761],{"class":1084,"line":1529},[1082,7756,1610],{"class":1190},[1082,7758,1649],{"class":1194},[1082,7760,1271],{"class":1190},[1082,7762,1274],{"class":1137},[1082,7764,7765],{"class":1084,"line":1560},[1082,7766,1659],{"class":1137},[1082,7768,7769],{"class":1084,"line":1577},[1082,7770,1665],{"class":1137},[1082,7772,7773],{"class":1084,"line":1592},[1082,7774,1671],{"class":1137},[1082,7776,7777],{"class":1084,"line":1607},[1082,7778,1358],{"class":1137},[1082,7780,7781],{"class":1084,"line":1620},[1082,7782,1121],{"emptyLinePlaceholder":1120},[1082,7784,7785],{"class":1084,"line":1632},[1082,7786,7787],{"class":1088},"# WSGI/ASGI\n",[1082,7789,7790,7792,7794,7796,7798],{"class":1084,"line":1644},[1082,7791,1687],{"class":1133},[1082,7793,1138],{"class":1137},[1082,7795,1191],{"class":1190},[1082,7797,1694],{"class":1194},[1082,7799,1198],{"class":1190},[1082,7801,7802,7805,7807,7809,7812],{"class":1084,"line":1656},[1082,7803,7804],{"class":1133},"ASGI_APPLICATION",[1082,7806,1138],{"class":1137},[1082,7808,1191],{"class":1190},[1082,7810,7811],{"class":1194},"myproject.asgi.application",[1082,7813,1198],{"class":1190},[1082,7815,7816],{"class":1084,"line":1662},[1082,7817,1121],{"emptyLinePlaceholder":1120},[1082,7819,7820],{"class":1084,"line":1668},[1082,7821,1707],{"class":1088},[1082,7823,7824,7826,7828],{"class":1084,"line":1674},[1082,7825,1713],{"class":1133},[1082,7827,1138],{"class":1137},[1082,7829,1589],{"class":1137},[1082,7831,7832,7834,7836,7838,7840],{"class":1084,"line":1679},[1082,7833,1265],{"class":1190},[1082,7835,1725],{"class":1194},[1082,7837,1271],{"class":1190},[1082,7839,1517],{"class":1137},[1082,7841,1589],{"class":1137},[1082,7843,7844,7846,7848,7850,7852,7854,7856,7858],{"class":1084,"line":1684},[1082,7845,1509],{"class":1190},[1082,7847,1739],{"class":1194},[1082,7849,1271],{"class":1190},[1082,7851,1517],{"class":1137},[1082,7853,1191],{"class":1190},[1082,7855,4086],{"class":1194},[1082,7857,1271],{"class":1190},[1082,7859,1274],{"class":1137},[1082,7861,7862,7864,7866,7868,7870,7872,7874,7876],{"class":1084,"line":1699},[1082,7863,1509],{"class":1190},[1082,7865,1760],{"class":1194},[1082,7867,1271],{"class":1190},[1082,7869,1517],{"class":1137},[1082,7871,1191],{"class":1190},[1082,7873,2032],{"class":1194},[1082,7875,1271],{"class":1190},[1082,7877,1274],{"class":1137},[1082,7879,7880,7882,7884,7886,7888,7890,7893,7895],{"class":1084,"line":1704},[1082,7881,1509],{"class":1190},[1082,7883,4124],{"class":1194},[1082,7885,1271],{"class":1190},[1082,7887,1517],{"class":1137},[1082,7889,1191],{"class":1190},[1082,7891,7892],{"class":1194},"myproject_user",[1082,7894,1271],{"class":1190},[1082,7896,1274],{"class":1137},[1082,7898,7899,7901,7903,7905,7907,7909,7912,7914],{"class":1084,"line":1710},[1082,7900,1509],{"class":1190},[1082,7902,4152],{"class":1194},[1082,7904,1271],{"class":1190},[1082,7906,1517],{"class":1137},[1082,7908,1191],{"class":1190},[1082,7910,7911],{"class":1194},"password",[1082,7913,1271],{"class":1190},[1082,7915,1274],{"class":1137},[1082,7917,7918,7920,7922,7924,7926,7928,7930,7932],{"class":1084,"line":1720},[1082,7919,1509],{"class":1190},[1082,7921,4180],{"class":1194},[1082,7923,1271],{"class":1190},[1082,7925,1517],{"class":1137},[1082,7927,1191],{"class":1190},[1082,7929,4206],{"class":1194},[1082,7931,1271],{"class":1190},[1082,7933,1274],{"class":1137},[1082,7935,7936,7938,7940,7942,7944,7946,7948,7950],{"class":1084,"line":1734},[1082,7937,1509],{"class":1190},[1082,7939,4217],{"class":1194},[1082,7941,1271],{"class":1190},[1082,7943,1517],{"class":1137},[1082,7945,1191],{"class":1190},[1082,7947,4243],{"class":1194},[1082,7949,1271],{"class":1190},[1082,7951,1274],{"class":1137},[1082,7953,7954],{"class":1084,"line":1755},[1082,7955,1784],{"class":1137},[1082,7957,7958],{"class":1084,"line":1781},[1082,7959,1790],{"class":1137},[1082,7961,7962],{"class":1084,"line":1787},[1082,7963,1121],{"emptyLinePlaceholder":1120},[1082,7965,7966],{"class":1084,"line":1793},[1082,7967,1801],{"class":1088},[1082,7969,7970,7972,7974,7976,7978],{"class":1084,"line":1798},[1082,7971,1807],{"class":1133},[1082,7973,1138],{"class":1137},[1082,7975,1191],{"class":1190},[1082,7977,1814],{"class":1194},[1082,7979,1198],{"class":1190},[1082,7981,7982,7984,7986,7988,7990],{"class":1084,"line":1804},[1082,7983,1822],{"class":1133},[1082,7985,1138],{"class":1137},[1082,7987,1191],{"class":1190},[1082,7989,1829],{"class":1194},[1082,7991,1198],{"class":1190},[1082,7993,7994,7996,7998],{"class":1084,"line":1819},[1082,7995,1837],{"class":1133},[1082,7997,1138],{"class":1137},[1082,7999,1221],{"class":1220},[1082,8001,8002,8004,8006],{"class":1084,"line":1834},[1082,8003,1847],{"class":1133},[1082,8005,1138],{"class":1137},[1082,8007,1221],{"class":1220},[1082,8009,8010],{"class":1084,"line":1844},[1082,8011,1121],{"emptyLinePlaceholder":1120},[1082,8013,8014],{"class":1084,"line":1854},[1082,8015,2548],{"class":1088},[1082,8017,8018,8020,8022,8024,8026],{"class":1084,"line":1859},[1082,8019,1868],{"class":1133},[1082,8021,1138],{"class":1137},[1082,8023,1191],{"class":1190},[1082,8025,1875],{"class":1194},[1082,8027,1198],{"class":1190},[1082,8029,8030,8032,8034,8036,8038,8040,8042],{"class":1084,"line":1865},[1082,8031,1906],{"class":1133},[1082,8033,1138],{"class":1137},[1082,8035,1767],{"class":1133},[1082,8037,1547],{"class":1546},[1082,8039,1191],{"class":1190},[1082,8041,1917],{"class":1194},[1082,8043,1198],{"class":1190},[1082,8045,8046,8048,8050,8052,8054,8056,8058,8060,8062],{"class":1084,"line":1880},[1082,8047,1883],{"class":1133},[1082,8049,1138],{"class":1137},[1082,8051,1541],{"class":1137},[1082,8053,1134],{"class":1133},[1082,8055,1547],{"class":1546},[1082,8057,1191],{"class":1190},[1082,8059,1896],{"class":1194},[1082,8061,1271],{"class":1190},[1082,8063,1358],{"class":1137},[1082,8065,8066],{"class":1084,"line":1903},[1082,8067,1121],{"emptyLinePlaceholder":1120},[1082,8069,8070],{"class":1084,"line":1922},[1082,8071,1930],{"class":1088},[1082,8073,8074,8076,8078,8080,8082],{"class":1084,"line":1927},[1082,8075,1936],{"class":1133},[1082,8077,1138],{"class":1137},[1082,8079,1191],{"class":1190},[1082,8081,1943],{"class":1194},[1082,8083,1198],{"class":1190},[1082,8085,8086,8088,8090,8092,8094,8096,8098],{"class":1084,"line":1933},[1082,8087,1951],{"class":1133},[1082,8089,1138],{"class":1137},[1082,8091,1767],{"class":1133},[1082,8093,1547],{"class":1546},[1082,8095,1191],{"class":1190},[1082,8097,1962],{"class":1194},[1082,8099,1198],{"class":1190},[1082,8101,8102],{"class":1084,"line":1948},[1082,8103,1121],{"emptyLinePlaceholder":1120},[1082,8105,8106],{"class":1084,"line":1967},[1082,8107,1975],{"class":1088},[1082,8109,8110,8112,8114,8116,8118],{"class":1084,"line":1972},[1082,8111,1981],{"class":1133},[1082,8113,1138],{"class":1137},[1082,8115,1191],{"class":1190},[1082,8117,1988],{"class":1194},[1082,8119,1198],{"class":1190},[1035,8121,8123],{"id":8122},"advanced-settings-categories","Advanced Settings Categories",[1072,8125,8127],{"className":1074,"code":8126,"language":1076,"meta":1077,"style":1077},"# Authentication and authorization\nAUTH_USER_MODEL = 'accounts.User'  # Custom user model\nLOGIN_URL = '/accounts/login/'\nLOGIN_REDIRECT_URL = '/dashboard/'\nLOGOUT_REDIRECT_URL = '/'\n\n# Session configuration\nSESSION_ENGINE = 'django.contrib.sessions.backends.cached_db'\nSESSION_CACHE_ALIAS = 'default'\nSESSION_COOKIE_AGE = 1209600  # 2 weeks\nSESSION_SAVE_EVERY_REQUEST = True\nSESSION_EXPIRE_AT_BROWSER_CLOSE = False\n\n# Cache configuration\nCACHES = {\n    'default': {\n        'BACKEND': 'django.core.cache.backends.redis.RedisCache',\n        'LOCATION': 'redis://127.0.0.1:6379/1',\n        'OPTIONS': {\n            'CLIENT_CLASS': 'django_redis.client.DefaultClient',\n        },\n        'KEY_PREFIX': 'myproject',\n        'TIMEOUT': 300,\n    }\n}\n\n# Email configuration\nEMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'\nEMAIL_HOST = 'smtp.gmail.com'\nEMAIL_PORT = 587\nEMAIL_USE_TLS = True\nEMAIL_HOST_USER = 'your-email@gmail.com'\nEMAIL_HOST_PASSWORD = 'your-password'\nDEFAULT_FROM_EMAIL = 'MyProject \u003Cnoreply@myproject.com>'\nSERVER_EMAIL = 'server@myproject.com'\n\n# File uploads\nFILE_UPLOAD_MAX_MEMORY_SIZE = 5242880  # 5MB\nDATA_UPLOAD_MAX_MEMORY_SIZE = 5242880  # 5MB\nFILE_UPLOAD_TEMP_DIR = '/tmp'\nFILE_UPLOAD_PERMISSIONS = 0o644\nFILE_UPLOAD_DIRECTORY_PERMISSIONS = 0o755\n\n# Logging\nLOGGING = {\n    'version': 1,\n    'disable_existing_loggers': False,\n    'formatters': {\n        'verbose': {\n            'format': '{levelname} {asctime} {module} {process:d} {thread:d} {message}',\n            'style': '{',\n        },\n        'simple': {\n            'format': '{levelname} {message}',\n            'style': '{',\n        },\n    },\n    'handlers': {\n        'file': {\n            'level': 'INFO',\n            'class': 'logging.FileHandler',\n            'filename': 'django.log',\n            'formatter': 'verbose',\n        },\n        'console': {\n            'level': 'DEBUG',\n            'class': 'logging.StreamHandler',\n            'formatter': 'simple',\n        },\n    },\n    'root': {\n        'handlers': ['console'],\n        'level': 'WARNING',\n    },\n    'loggers': {\n        'django': {\n            'handlers': ['file'],\n            'level': 'INFO',\n            'propagate': False,\n        },\n        'myproject': {\n            'handlers': ['file', 'console'],\n            'level': 'DEBUG',\n            'propagate': False,\n        },\n    },\n}\n\n# Celery (if using)\nCELERY_BROKER_URL = 'redis://localhost:6379/0'\nCELERY_RESULT_BACKEND = 'redis://localhost:6379/0'\nCELERY_ACCEPT_CONTENT = ['json']\nCELERY_TASK_SERIALIZER = 'json'\nCELERY_RESULT_SERIALIZER = 'json'\nCELERY_TIMEZONE = TIME_ZONE\n\n# Third-party integrations\nAWS_ACCESS_KEY_ID = 'your-access-key'\nAWS_SECRET_ACCESS_KEY = 'your-secret-key'\nAWS_STORAGE_BUCKET_NAME = 'your-bucket'\nAWS_S3_REGION_NAME = 'us-east-1'\n\n# API settings\nREST_FRAMEWORK = {\n    'DEFAULT_AUTHENTICATION_CLASSES': [\n        'rest_framework.authentication.TokenAuthentication',\n    ],\n    'DEFAULT_PERMISSION_CLASSES': [\n        'rest_framework.permissions.IsAuthenticated',\n    ],\n    'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',\n    'PAGE_SIZE': 20,\n}\n",[1079,8128,8129,8134,8150,8164,8178,8192,8196,8201,8214,8227,8237,8246,8255,8259,8264,8273,8285,8304,8324,8336,8356,8360,8379,8395,8399,8403,8407,8412,8426,8439,8448,8457,8470,8483,8497,8511,8515,8519,8529,8539,8553,8563,8575,8579,8584,8592,8606,8620,8633,8646,8690,8709,8713,8726,8746,8764,8768,8772,8784,8797,8816,8834,8853,8872,8876,8889,8907,8926,8944,8948,8952,8965,8985,9003,9007,9019,9031,9051,9069,9083,9087,9099,9127,9145,9159,9163,9167,9171,9175,9180,9194,9207,9225,9238,9251,9261,9265,9270,9283,9295,9309,9324,9329,9335,9345,9359,9371,9377,9391,9403,9408,9429,9446],{"__ignoreMap":1077},[1082,8130,8131],{"class":1084,"line":1085},[1082,8132,8133],{"class":1088},"# Authentication and authorization\n",[1082,8135,8136,8138,8140,8142,8145,8147],{"class":1084,"line":1092},[1082,8137,3057],{"class":1133},[1082,8139,1138],{"class":1137},[1082,8141,1191],{"class":1190},[1082,8143,8144],{"class":1194},"accounts.User",[1082,8146,1271],{"class":1190},[1082,8148,8149],{"class":1088},"  # Custom user model\n",[1082,8151,8152,8155,8157,8159,8162],{"class":1084,"line":1103},[1082,8153,8154],{"class":1133},"LOGIN_URL",[1082,8156,1138],{"class":1137},[1082,8158,1191],{"class":1190},[1082,8160,8161],{"class":1194},"/accounts/login/",[1082,8163,1198],{"class":1190},[1082,8165,8166,8169,8171,8173,8176],{"class":1084,"line":1117},[1082,8167,8168],{"class":1133},"LOGIN_REDIRECT_URL",[1082,8170,1138],{"class":1137},[1082,8172,1191],{"class":1190},[1082,8174,8175],{"class":1194},"/dashboard/",[1082,8177,1198],{"class":1190},[1082,8179,8180,8183,8185,8187,8190],{"class":1084,"line":1124},[1082,8181,8182],{"class":1133},"LOGOUT_REDIRECT_URL",[1082,8184,1138],{"class":1137},[1082,8186,1191],{"class":1190},[1082,8188,8189],{"class":1194},"/",[1082,8191,1198],{"class":1190},[1082,8193,8194],{"class":1084,"line":1130},[1082,8195,1121],{"emptyLinePlaceholder":1120},[1082,8197,8198],{"class":1084,"line":1171},[1082,8199,8200],{"class":1088},"# Session configuration\n",[1082,8202,8203,8205,8207,8209,8212],{"class":1084,"line":1176},[1082,8204,2579],{"class":1133},[1082,8206,1138],{"class":1137},[1082,8208,1191],{"class":1190},[1082,8210,8211],{"class":1194},"django.contrib.sessions.backends.cached_db",[1082,8213,1198],{"class":1190},[1082,8215,8216,8219,8221,8223,8225],{"class":1084,"line":1182},[1082,8217,8218],{"class":1133},"SESSION_CACHE_ALIAS",[1082,8220,1138],{"class":1137},[1082,8222,1191],{"class":1190},[1082,8224,1725],{"class":1194},[1082,8226,1198],{"class":1190},[1082,8228,8229,8231,8233,8235],{"class":1084,"line":1201},[1082,8230,2351],{"class":1133},[1082,8232,1138],{"class":1137},[1082,8234,2598],{"class":2597},[1082,8236,2601],{"class":1088},[1082,8238,8239,8242,8244],{"class":1084,"line":1206},[1082,8240,8241],{"class":1133},"SESSION_SAVE_EVERY_REQUEST",[1082,8243,1138],{"class":1137},[1082,8245,1221],{"class":1220},[1082,8247,8248,8251,8253],{"class":1084,"line":1212},[1082,8249,8250],{"class":1133},"SESSION_EXPIRE_AT_BROWSER_CLOSE",[1082,8252,1138],{"class":1137},[1082,8254,2400],{"class":1220},[1082,8256,8257],{"class":1084,"line":1224},[1082,8258,1121],{"emptyLinePlaceholder":1120},[1082,8260,8261],{"class":1084,"line":1229},[1082,8262,8263],{"class":1088},"# Cache configuration\n",[1082,8265,8266,8269,8271],{"class":1084,"line":1240},[1082,8267,8268],{"class":1133},"CACHES",[1082,8270,1138],{"class":1137},[1082,8272,1589],{"class":1137},[1082,8274,8275,8277,8279,8281,8283],{"class":1084,"line":1245},[1082,8276,1265],{"class":1190},[1082,8278,1725],{"class":1194},[1082,8280,1271],{"class":1190},[1082,8282,1517],{"class":1137},[1082,8284,1589],{"class":1137},[1082,8286,8287,8289,8291,8293,8295,8297,8300,8302],{"class":1084,"line":1251},[1082,8288,1509],{"class":1190},[1082,8290,1512],{"class":1194},[1082,8292,1271],{"class":1190},[1082,8294,1517],{"class":1137},[1082,8296,1191],{"class":1190},[1082,8298,8299],{"class":1194},"django.core.cache.backends.redis.RedisCache",[1082,8301,1271],{"class":1190},[1082,8303,1274],{"class":1137},[1082,8305,8306,8308,8311,8313,8315,8317,8320,8322],{"class":1084,"line":1262},[1082,8307,1509],{"class":1190},[1082,8309,8310],{"class":1194},"LOCATION",[1082,8312,1271],{"class":1190},[1082,8314,1517],{"class":1137},[1082,8316,1191],{"class":1190},[1082,8318,8319],{"class":1194},"redis://127.0.0.1:6379/1",[1082,8321,1271],{"class":1190},[1082,8323,1274],{"class":1137},[1082,8325,8326,8328,8330,8332,8334],{"class":1084,"line":1277},[1082,8327,1509],{"class":1190},[1082,8329,1582],{"class":1194},[1082,8331,1271],{"class":1190},[1082,8333,1517],{"class":1137},[1082,8335,1589],{"class":1137},[1082,8337,8338,8340,8343,8345,8347,8349,8352,8354],{"class":1084,"line":1289},[1082,8339,1595],{"class":1190},[1082,8341,8342],{"class":1194},"CLIENT_CLASS",[1082,8344,1271],{"class":1190},[1082,8346,1517],{"class":1137},[1082,8348,1191],{"class":1190},[1082,8350,8351],{"class":1194},"django_redis.client.DefaultClient",[1082,8353,1271],{"class":1190},[1082,8355,1274],{"class":1137},[1082,8357,8358],{"class":1084,"line":1301},[1082,8359,1665],{"class":1137},[1082,8361,8362,8364,8367,8369,8371,8373,8375,8377],{"class":1084,"line":1313},[1082,8363,1509],{"class":1190},[1082,8365,8366],{"class":1194},"KEY_PREFIX",[1082,8368,1271],{"class":1190},[1082,8370,1517],{"class":1137},[1082,8372,1191],{"class":1190},[1082,8374,2032],{"class":1194},[1082,8376,1271],{"class":1190},[1082,8378,1274],{"class":1137},[1082,8380,8381,8383,8386,8388,8390,8393],{"class":1084,"line":1325},[1082,8382,1509],{"class":1190},[1082,8384,8385],{"class":1194},"TIMEOUT",[1082,8387,1271],{"class":1190},[1082,8389,1517],{"class":1137},[1082,8391,8392],{"class":2597}," 300",[1082,8394,1274],{"class":1137},[1082,8396,8397],{"class":1084,"line":1337},[1082,8398,1784],{"class":1137},[1082,8400,8401],{"class":1084,"line":1343},[1082,8402,1790],{"class":1137},[1082,8404,8405],{"class":1084,"line":1355},[1082,8406,1121],{"emptyLinePlaceholder":1120},[1082,8408,8409],{"class":1084,"line":1361},[1082,8410,8411],{"class":1088},"# Email configuration\n",[1082,8413,8414,8417,8419,8421,8424],{"class":1084,"line":1366},[1082,8415,8416],{"class":1133},"EMAIL_BACKEND",[1082,8418,1138],{"class":1137},[1082,8420,1191],{"class":1190},[1082,8422,8423],{"class":1194},"django.core.mail.backends.smtp.EmailBackend",[1082,8425,1198],{"class":1190},[1082,8427,8428,8430,8432,8434,8437],{"class":1084,"line":1376},[1082,8429,7005],{"class":1133},[1082,8431,1138],{"class":1137},[1082,8433,1191],{"class":1190},[1082,8435,8436],{"class":1194},"smtp.gmail.com",[1082,8438,1198],{"class":1190},[1082,8440,8441,8443,8445],{"class":1084,"line":1388},[1082,8442,7015],{"class":1133},[1082,8444,1138],{"class":1137},[1082,8446,8447],{"class":2597}," 587\n",[1082,8449,8450,8453,8455],{"class":1084,"line":1400},[1082,8451,8452],{"class":1133},"EMAIL_USE_TLS",[1082,8454,1138],{"class":1137},[1082,8456,1221],{"class":1220},[1082,8458,8459,8461,8463,8465,8468],{"class":1084,"line":1412},[1082,8460,7025],{"class":1133},[1082,8462,1138],{"class":1137},[1082,8464,1191],{"class":1190},[1082,8466,8467],{"class":1194},"your-email@gmail.com",[1082,8469,1198],{"class":1190},[1082,8471,8472,8474,8476,8478,8481],{"class":1084,"line":1424},[1082,8473,7035],{"class":1133},[1082,8475,1138],{"class":1137},[1082,8477,1191],{"class":1190},[1082,8479,8480],{"class":1194},"your-password",[1082,8482,1198],{"class":1190},[1082,8484,8485,8488,8490,8492,8495],{"class":1084,"line":1436},[1082,8486,8487],{"class":1133},"DEFAULT_FROM_EMAIL",[1082,8489,1138],{"class":1137},[1082,8491,1191],{"class":1190},[1082,8493,8494],{"class":1194},"MyProject \u003Cnoreply@myproject.com>",[1082,8496,1198],{"class":1190},[1082,8498,8499,8502,8504,8506,8509],{"class":1084,"line":1448},[1082,8500,8501],{"class":1133},"SERVER_EMAIL",[1082,8503,1138],{"class":1137},[1082,8505,1191],{"class":1190},[1082,8507,8508],{"class":1194},"server@myproject.com",[1082,8510,1198],{"class":1190},[1082,8512,8513],{"class":1084,"line":1460},[1082,8514,1121],{"emptyLinePlaceholder":1120},[1082,8516,8517],{"class":1084,"line":1465},[1082,8518,2660],{"class":1088},[1082,8520,8521,8523,8525,8527],{"class":1084,"line":1470},[1082,8522,2665],{"class":1133},[1082,8524,1138],{"class":1137},[1082,8526,6459],{"class":2597},[1082,8528,6462],{"class":1088},[1082,8530,8531,8533,8535,8537],{"class":1084,"line":1485},[1082,8532,2678],{"class":1133},[1082,8534,1138],{"class":1137},[1082,8536,6459],{"class":2597},[1082,8538,6462],{"class":1088},[1082,8540,8541,8544,8546,8548,8551],{"class":1084,"line":1490},[1082,8542,8543],{"class":1133},"FILE_UPLOAD_TEMP_DIR",[1082,8545,1138],{"class":1137},[1082,8547,1191],{"class":1190},[1082,8549,8550],{"class":1194},"/tmp",[1082,8552,1198],{"class":1190},[1082,8554,8555,8557,8559,8561],{"class":1084,"line":1500},[1082,8556,6477],{"class":1133},[1082,8558,1138],{"class":1137},[1082,8560,6482],{"class":2021},[1082,8562,6485],{"class":2597},[1082,8564,8565,8568,8570,8572],{"class":1084,"line":1506},[1082,8566,8567],{"class":1133},"FILE_UPLOAD_DIRECTORY_PERMISSIONS",[1082,8569,1138],{"class":1137},[1082,8571,6482],{"class":2021},[1082,8573,8574],{"class":2597},"755\n",[1082,8576,8577],{"class":1084,"line":1529},[1082,8578,1121],{"emptyLinePlaceholder":1120},[1082,8580,8581],{"class":1084,"line":1560},[1082,8582,8583],{"class":1088},"# Logging\n",[1082,8585,8586,8588,8590],{"class":1084,"line":1577},[1082,8587,6660],{"class":1133},[1082,8589,1138],{"class":1137},[1082,8591,1589],{"class":1137},[1082,8593,8594,8596,8598,8600,8602,8604],{"class":1084,"line":1592},[1082,8595,1265],{"class":1190},[1082,8597,6672],{"class":1194},[1082,8599,1271],{"class":1190},[1082,8601,1517],{"class":1137},[1082,8603,6679],{"class":2597},[1082,8605,1274],{"class":1137},[1082,8607,8608,8610,8612,8614,8616,8618],{"class":1084,"line":1607},[1082,8609,1265],{"class":1190},[1082,8611,6689],{"class":1194},[1082,8613,1271],{"class":1190},[1082,8615,1517],{"class":1137},[1082,8617,6696],{"class":1220},[1082,8619,1274],{"class":1137},[1082,8621,8622,8624,8627,8629,8631],{"class":1084,"line":1620},[1082,8623,1265],{"class":1190},[1082,8625,8626],{"class":1194},"formatters",[1082,8628,1271],{"class":1190},[1082,8630,1517],{"class":1137},[1082,8632,1589],{"class":1137},[1082,8634,8635,8637,8640,8642,8644],{"class":1084,"line":1632},[1082,8636,1509],{"class":1190},[1082,8638,8639],{"class":1194},"verbose",[1082,8641,1271],{"class":1190},[1082,8643,1517],{"class":1137},[1082,8645,1589],{"class":1137},[1082,8647,8648,8650,8653,8655,8657,8659,8662,8665,8668,8671,8674,8676,8679,8681,8683,8686,8688],{"class":1084,"line":1644},[1082,8649,1595],{"class":1190},[1082,8651,8652],{"class":1194},"format",[1082,8654,1271],{"class":1190},[1082,8656,1517],{"class":1137},[1082,8658,1191],{"class":1190},[1082,8660,8661],{"class":3152},"{levelname}",[1082,8663,8664],{"class":3152}," {asctime}",[1082,8666,8667],{"class":3152}," {module}",[1082,8669,8670],{"class":3152}," {process",[1082,8672,8673],{"class":2021},":d",[1082,8675,3171],{"class":3152},[1082,8677,8678],{"class":3152}," {thread",[1082,8680,8673],{"class":2021},[1082,8682,3171],{"class":3152},[1082,8684,8685],{"class":3152}," {message}",[1082,8687,1271],{"class":1190},[1082,8689,1274],{"class":1137},[1082,8691,8692,8694,8697,8699,8701,8703,8705,8707],{"class":1084,"line":1656},[1082,8693,1595],{"class":1190},[1082,8695,8696],{"class":1194},"style",[1082,8698,1271],{"class":1190},[1082,8700,1517],{"class":1137},[1082,8702,1191],{"class":1190},[1082,8704,3153],{"class":1194},[1082,8706,1271],{"class":1190},[1082,8708,1274],{"class":1137},[1082,8710,8711],{"class":1084,"line":1662},[1082,8712,1665],{"class":1137},[1082,8714,8715,8717,8720,8722,8724],{"class":1084,"line":1668},[1082,8716,1509],{"class":1190},[1082,8718,8719],{"class":1194},"simple",[1082,8721,1271],{"class":1190},[1082,8723,1517],{"class":1137},[1082,8725,1589],{"class":1137},[1082,8727,8728,8730,8732,8734,8736,8738,8740,8742,8744],{"class":1084,"line":1674},[1082,8729,1595],{"class":1190},[1082,8731,8652],{"class":1194},[1082,8733,1271],{"class":1190},[1082,8735,1517],{"class":1137},[1082,8737,1191],{"class":1190},[1082,8739,8661],{"class":3152},[1082,8741,8685],{"class":3152},[1082,8743,1271],{"class":1190},[1082,8745,1274],{"class":1137},[1082,8747,8748,8750,8752,8754,8756,8758,8760,8762],{"class":1084,"line":1679},[1082,8749,1595],{"class":1190},[1082,8751,8696],{"class":1194},[1082,8753,1271],{"class":1190},[1082,8755,1517],{"class":1137},[1082,8757,1191],{"class":1190},[1082,8759,3153],{"class":1194},[1082,8761,1271],{"class":1190},[1082,8763,1274],{"class":1137},[1082,8765,8766],{"class":1084,"line":1684},[1082,8767,1665],{"class":1137},[1082,8769,8770],{"class":1084,"line":1699},[1082,8771,1671],{"class":1137},[1082,8773,8774,8776,8778,8780,8782],{"class":1084,"line":1704},[1082,8775,1265],{"class":1190},[1082,8777,6706],{"class":1194},[1082,8779,1271],{"class":1190},[1082,8781,1517],{"class":1137},[1082,8783,1589],{"class":1137},[1082,8785,8786,8788,8791,8793,8795],{"class":1084,"line":1710},[1082,8787,1509],{"class":1190},[1082,8789,8790],{"class":1194},"file",[1082,8792,1271],{"class":1190},[1082,8794,1517],{"class":1137},[1082,8796,1589],{"class":1137},[1082,8798,8799,8801,8803,8805,8807,8809,8812,8814],{"class":1084,"line":1720},[1082,8800,1595],{"class":1190},[1082,8802,6734],{"class":1194},[1082,8804,1271],{"class":1190},[1082,8806,1517],{"class":1137},[1082,8808,1191],{"class":1190},[1082,8810,8811],{"class":1194},"INFO",[1082,8813,1271],{"class":1190},[1082,8815,1274],{"class":1137},[1082,8817,8818,8820,8822,8824,8826,8828,8830,8832],{"class":1084,"line":1734},[1082,8819,1595],{"class":1190},[1082,8821,3017],{"class":1194},[1082,8823,1271],{"class":1190},[1082,8825,1517],{"class":1137},[1082,8827,1191],{"class":1190},[1082,8829,6763],{"class":1194},[1082,8831,1271],{"class":1190},[1082,8833,1274],{"class":1137},[1082,8835,8836,8838,8840,8842,8844,8846,8849,8851],{"class":1084,"line":1755},[1082,8837,1595],{"class":1190},[1082,8839,6775],{"class":1194},[1082,8841,1271],{"class":1190},[1082,8843,1517],{"class":1137},[1082,8845,1191],{"class":1190},[1082,8847,8848],{"class":1194},"django.log",[1082,8850,1271],{"class":1190},[1082,8852,1274],{"class":1137},[1082,8854,8855,8857,8860,8862,8864,8866,8868,8870],{"class":1084,"line":1781},[1082,8856,1595],{"class":1190},[1082,8858,8859],{"class":1194},"formatter",[1082,8861,1271],{"class":1190},[1082,8863,1517],{"class":1137},[1082,8865,1191],{"class":1190},[1082,8867,8639],{"class":1194},[1082,8869,1271],{"class":1190},[1082,8871,1274],{"class":1137},[1082,8873,8874],{"class":1084,"line":1787},[1082,8875,1665],{"class":1137},[1082,8877,8878,8880,8883,8885,8887],{"class":1084,"line":1793},[1082,8879,1509],{"class":1190},[1082,8881,8882],{"class":1194},"console",[1082,8884,1271],{"class":1190},[1082,8886,1517],{"class":1137},[1082,8888,1589],{"class":1137},[1082,8890,8891,8893,8895,8897,8899,8901,8903,8905],{"class":1084,"line":1798},[1082,8892,1595],{"class":1190},[1082,8894,6734],{"class":1194},[1082,8896,1271],{"class":1190},[1082,8898,1517],{"class":1137},[1082,8900,1191],{"class":1190},[1082,8902,1215],{"class":1194},[1082,8904,1271],{"class":1190},[1082,8906,1274],{"class":1137},[1082,8908,8909,8911,8913,8915,8917,8919,8922,8924],{"class":1084,"line":1804},[1082,8910,1595],{"class":1190},[1082,8912,3017],{"class":1194},[1082,8914,1271],{"class":1190},[1082,8916,1517],{"class":1137},[1082,8918,1191],{"class":1190},[1082,8920,8921],{"class":1194},"logging.StreamHandler",[1082,8923,1271],{"class":1190},[1082,8925,1274],{"class":1137},[1082,8927,8928,8930,8932,8934,8936,8938,8940,8942],{"class":1084,"line":1819},[1082,8929,1595],{"class":1190},[1082,8931,8859],{"class":1194},[1082,8933,1271],{"class":1190},[1082,8935,1517],{"class":1137},[1082,8937,1191],{"class":1190},[1082,8939,8719],{"class":1194},[1082,8941,1271],{"class":1190},[1082,8943,1274],{"class":1137},[1082,8945,8946],{"class":1084,"line":1834},[1082,8947,1665],{"class":1137},[1082,8949,8950],{"class":1084,"line":1844},[1082,8951,1671],{"class":1137},[1082,8953,8954,8956,8959,8961,8963],{"class":1084,"line":1854},[1082,8955,1265],{"class":1190},[1082,8957,8958],{"class":1194},"root",[1082,8960,1271],{"class":1190},[1082,8962,1517],{"class":1137},[1082,8964,1589],{"class":1137},[1082,8966,8967,8969,8971,8973,8975,8977,8979,8981,8983],{"class":1084,"line":1859},[1082,8968,1509],{"class":1190},[1082,8970,6706],{"class":1194},[1082,8972,1271],{"class":1190},[1082,8974,1517],{"class":1137},[1082,8976,1541],{"class":1137},[1082,8978,1271],{"class":1190},[1082,8980,8882],{"class":1194},[1082,8982,1271],{"class":1190},[1082,8984,1557],{"class":1137},[1082,8986,8987,8989,8991,8993,8995,8997,8999,9001],{"class":1084,"line":1865},[1082,8988,1509],{"class":1190},[1082,8990,6734],{"class":1194},[1082,8992,1271],{"class":1190},[1082,8994,1517],{"class":1137},[1082,8996,1191],{"class":1190},[1082,8998,6743],{"class":1194},[1082,9000,1271],{"class":1190},[1082,9002,1274],{"class":1137},[1082,9004,9005],{"class":1084,"line":1880},[1082,9006,1671],{"class":1137},[1082,9008,9009,9011,9013,9015,9017],{"class":1084,"line":1903},[1082,9010,1265],{"class":1190},[1082,9012,6806],{"class":1194},[1082,9014,1271],{"class":1190},[1082,9016,1517],{"class":1137},[1082,9018,1589],{"class":1137},[1082,9020,9021,9023,9025,9027,9029],{"class":1084,"line":1922},[1082,9022,1509],{"class":1190},[1082,9024,2221],{"class":1194},[1082,9026,1271],{"class":1190},[1082,9028,1517],{"class":1137},[1082,9030,1589],{"class":1137},[1082,9032,9033,9035,9037,9039,9041,9043,9045,9047,9049],{"class":1084,"line":1927},[1082,9034,1595],{"class":1190},[1082,9036,6706],{"class":1194},[1082,9038,1271],{"class":1190},[1082,9040,1517],{"class":1137},[1082,9042,1541],{"class":1137},[1082,9044,1271],{"class":1190},[1082,9046,8790],{"class":1194},[1082,9048,1271],{"class":1190},[1082,9050,1557],{"class":1137},[1082,9052,9053,9055,9057,9059,9061,9063,9065,9067],{"class":1084,"line":1933},[1082,9054,1595],{"class":1190},[1082,9056,6734],{"class":1194},[1082,9058,1271],{"class":1190},[1082,9060,1517],{"class":1137},[1082,9062,1191],{"class":1190},[1082,9064,8811],{"class":1194},[1082,9066,1271],{"class":1190},[1082,9068,1274],{"class":1137},[1082,9070,9071,9073,9075,9077,9079,9081],{"class":1084,"line":1948},[1082,9072,1595],{"class":1190},[1082,9074,6874],{"class":1194},[1082,9076,1271],{"class":1190},[1082,9078,1517],{"class":1137},[1082,9080,6696],{"class":1220},[1082,9082,1274],{"class":1137},[1082,9084,9085],{"class":1084,"line":1967},[1082,9086,1665],{"class":1137},[1082,9088,9089,9091,9093,9095,9097],{"class":1084,"line":1972},[1082,9090,1509],{"class":1190},[1082,9092,2032],{"class":1194},[1082,9094,1271],{"class":1190},[1082,9096,1517],{"class":1137},[1082,9098,1589],{"class":1137},[1082,9100,9101,9103,9105,9107,9109,9111,9113,9115,9117,9119,9121,9123,9125],{"class":1084,"line":1978},[1082,9102,1595],{"class":1190},[1082,9104,6706],{"class":1194},[1082,9106,1271],{"class":1190},[1082,9108,1517],{"class":1137},[1082,9110,1541],{"class":1137},[1082,9112,1271],{"class":1190},[1082,9114,8790],{"class":1194},[1082,9116,1271],{"class":1190},[1082,9118,2206],{"class":1137},[1082,9120,1191],{"class":1190},[1082,9122,8882],{"class":1194},[1082,9124,1271],{"class":1190},[1082,9126,1557],{"class":1137},[1082,9128,9129,9131,9133,9135,9137,9139,9141,9143],{"class":1084,"line":4996},[1082,9130,1595],{"class":1190},[1082,9132,6734],{"class":1194},[1082,9134,1271],{"class":1190},[1082,9136,1517],{"class":1137},[1082,9138,1191],{"class":1190},[1082,9140,1215],{"class":1194},[1082,9142,1271],{"class":1190},[1082,9144,1274],{"class":1137},[1082,9146,9147,9149,9151,9153,9155,9157],{"class":1084,"line":6667},[1082,9148,1595],{"class":1190},[1082,9150,6874],{"class":1194},[1082,9152,1271],{"class":1190},[1082,9154,1517],{"class":1137},[1082,9156,6696],{"class":1220},[1082,9158,1274],{"class":1137},[1082,9160,9161],{"class":1084,"line":6684},[1082,9162,1665],{"class":1137},[1082,9164,9165],{"class":1084,"line":6701},[1082,9166,1671],{"class":1137},[1082,9168,9169],{"class":1084,"line":6715},[1082,9170,1790],{"class":1137},[1082,9172,9173],{"class":1084,"line":6729},[1082,9174,1121],{"emptyLinePlaceholder":1120},[1082,9176,9177],{"class":1084,"line":6750},[1082,9178,9179],{"class":1088},"# Celery (if using)\n",[1082,9181,9182,9185,9187,9189,9192],{"class":1084,"line":6770},[1082,9183,9184],{"class":1133},"CELERY_BROKER_URL",[1082,9186,1138],{"class":1137},[1082,9188,1191],{"class":1190},[1082,9190,9191],{"class":1194},"redis://localhost:6379/0",[1082,9193,1198],{"class":1190},[1082,9195,9196,9199,9201,9203,9205],{"class":1084,"line":6791},[1082,9197,9198],{"class":1133},"CELERY_RESULT_BACKEND",[1082,9200,1138],{"class":1137},[1082,9202,1191],{"class":1190},[1082,9204,9191],{"class":1194},[1082,9206,1198],{"class":1190},[1082,9208,9209,9212,9214,9216,9218,9221,9223],{"class":1084,"line":6796},[1082,9210,9211],{"class":1133},"CELERY_ACCEPT_CONTENT",[1082,9213,1138],{"class":1137},[1082,9215,1541],{"class":1137},[1082,9217,1271],{"class":1190},[1082,9219,9220],{"class":1194},"json",[1082,9222,1271],{"class":1190},[1082,9224,1358],{"class":1137},[1082,9226,9227,9230,9232,9234,9236],{"class":1084,"line":6801},[1082,9228,9229],{"class":1133},"CELERY_TASK_SERIALIZER",[1082,9231,1138],{"class":1137},[1082,9233,1191],{"class":1190},[1082,9235,9220],{"class":1194},[1082,9237,1198],{"class":1190},[1082,9239,9240,9243,9245,9247,9249],{"class":1084,"line":6815},[1082,9241,9242],{"class":1133},"CELERY_RESULT_SERIALIZER",[1082,9244,1138],{"class":1137},[1082,9246,1191],{"class":1190},[1082,9248,9220],{"class":1194},[1082,9250,1198],{"class":1190},[1082,9252,9253,9256,9258],{"class":1084,"line":6829},[1082,9254,9255],{"class":1133},"CELERY_TIMEZONE",[1082,9257,1138],{"class":1137},[1082,9259,9260],{"class":1133}," TIME_ZONE\n",[1082,9262,9263],{"class":1084,"line":6850},[1082,9264,1121],{"emptyLinePlaceholder":1120},[1082,9266,9267],{"class":1084,"line":6869},[1082,9268,9269],{"class":1088},"# Third-party integrations\n",[1082,9271,9272,9274,9276,9278,9281],{"class":1084,"line":6885},[1082,9273,7054],{"class":1133},[1082,9275,1138],{"class":1137},[1082,9277,1191],{"class":1190},[1082,9279,9280],{"class":1194},"your-access-key",[1082,9282,1198],{"class":1190},[1082,9284,9285,9287,9289,9291,9293],{"class":1084,"line":6890},[1082,9286,7064],{"class":1133},[1082,9288,1138],{"class":1137},[1082,9290,1191],{"class":1190},[1082,9292,7416],{"class":1194},[1082,9294,1198],{"class":1190},[1082,9296,9297,9300,9302,9304,9307],{"class":1084,"line":6895},[1082,9298,9299],{"class":1133},"AWS_STORAGE_BUCKET_NAME",[1082,9301,1138],{"class":1137},[1082,9303,1191],{"class":1190},[1082,9305,9306],{"class":1194},"your-bucket",[1082,9308,1198],{"class":1190},[1082,9310,9312,9315,9317,9319,9322],{"class":1084,"line":9311},101,[1082,9313,9314],{"class":1133},"AWS_S3_REGION_NAME",[1082,9316,1138],{"class":1137},[1082,9318,1191],{"class":1190},[1082,9320,9321],{"class":1194},"us-east-1",[1082,9323,1198],{"class":1190},[1082,9325,9327],{"class":1084,"line":9326},102,[1082,9328,1121],{"emptyLinePlaceholder":1120},[1082,9330,9332],{"class":1084,"line":9331},103,[1082,9333,9334],{"class":1088},"# API settings\n",[1082,9336,9338,9341,9343],{"class":1084,"line":9337},104,[1082,9339,9340],{"class":1133},"REST_FRAMEWORK",[1082,9342,1138],{"class":1137},[1082,9344,1589],{"class":1137},[1082,9346,9348,9350,9353,9355,9357],{"class":1084,"line":9347},105,[1082,9349,1265],{"class":1190},[1082,9351,9352],{"class":1194},"DEFAULT_AUTHENTICATION_CLASSES",[1082,9354,1271],{"class":1190},[1082,9356,1517],{"class":1137},[1082,9358,1259],{"class":1137},[1082,9360,9362,9364,9367,9369],{"class":1084,"line":9361},106,[1082,9363,1509],{"class":1190},[1082,9365,9366],{"class":1194},"rest_framework.authentication.TokenAuthentication",[1082,9368,1271],{"class":1190},[1082,9370,1274],{"class":1137},[1082,9372,9374],{"class":1084,"line":9373},107,[1082,9375,9376],{"class":1137},"    ],\n",[1082,9378,9380,9382,9385,9387,9389],{"class":1084,"line":9379},108,[1082,9381,1265],{"class":1190},[1082,9383,9384],{"class":1194},"DEFAULT_PERMISSION_CLASSES",[1082,9386,1271],{"class":1190},[1082,9388,1517],{"class":1137},[1082,9390,1259],{"class":1137},[1082,9392,9394,9396,9399,9401],{"class":1084,"line":9393},109,[1082,9395,1509],{"class":1190},[1082,9397,9398],{"class":1194},"rest_framework.permissions.IsAuthenticated",[1082,9400,1271],{"class":1190},[1082,9402,1274],{"class":1137},[1082,9404,9406],{"class":1084,"line":9405},110,[1082,9407,9376],{"class":1137},[1082,9409,9411,9413,9416,9418,9420,9422,9425,9427],{"class":1084,"line":9410},111,[1082,9412,1265],{"class":1190},[1082,9414,9415],{"class":1194},"DEFAULT_PAGINATION_CLASS",[1082,9417,1271],{"class":1190},[1082,9419,1517],{"class":1137},[1082,9421,1191],{"class":1190},[1082,9423,9424],{"class":1194},"rest_framework.pagination.PageNumberPagination",[1082,9426,1271],{"class":1190},[1082,9428,1274],{"class":1137},[1082,9430,9432,9434,9437,9439,9441,9444],{"class":1084,"line":9431},112,[1082,9433,1265],{"class":1190},[1082,9435,9436],{"class":1194},"PAGE_SIZE",[1082,9438,1271],{"class":1190},[1082,9440,1517],{"class":1137},[1082,9442,9443],{"class":2597}," 20",[1082,9445,1274],{"class":1137},[1082,9447,9449],{"class":1084,"line":9448},113,[1082,9450,1790],{"class":1137},[1030,9452,9454],{"id":9453},"creating-your-own-settings","Creating Your Own Settings",[1035,9456,9458],{"id":9457},"custom-settings-best-practices","Custom Settings Best Practices",[1072,9460,9462],{"className":1074,"code":9461,"language":1076,"meta":1077,"style":1077},"# settings.py - Custom settings organization\n\n# Group related settings together\n# ================================\n# CUSTOM APPLICATION SETTINGS\n# ================================\n\n# Site configuration\nSITE_NAME = 'My Awesome Project'\nSITE_DESCRIPTION = 'A Django project that does amazing things'\nSITE_KEYWORDS = 'django, python, web, development'\nCONTACT_EMAIL = 'contact@myproject.com'\nSUPPORT_EMAIL = 'support@myproject.com'\n\n# Feature flags\nFEATURES = {\n    'ENABLE_REGISTRATION': True,\n    'ENABLE_SOCIAL_LOGIN': True,\n    'ENABLE_EMAIL_VERIFICATION': True,\n    'ENABLE_TWO_FACTOR_AUTH': False,\n    'ENABLE_API': True,\n    'ENABLE_ADMIN_DASHBOARD': True,\n}\n\n# Business logic settings\nMAX_UPLOAD_SIZE = 10 * 1024 * 1024  # 10MB\nALLOWED_FILE_TYPES = ['.jpg', '.jpeg', '.png', '.gif', '.pdf', '.doc', '.docx']\nMAX_FILES_PER_UPLOAD = 5\nDEFAULT_PAGINATION_SIZE = 25\nMAX_PAGINATION_SIZE = 100\n\n# API configuration\nAPI_VERSION = 'v1'\nAPI_RATE_LIMIT = '1000/hour'\nAPI_THROTTLE_RATES = {\n    'anon': '100/hour',\n    'user': '1000/hour',\n    'premium': '5000/hour',\n}\n\n# Notification settings\nNOTIFICATION_SETTINGS = {\n    'EMAIL_NOTIFICATIONS': True,\n    'SMS_NOTIFICATIONS': False,\n    'PUSH_NOTIFICATIONS': True,\n    'DIGEST_FREQUENCY': 'weekly',  # daily, weekly, monthly\n}\n\n# Social media integration\nSOCIAL_MEDIA = {\n    'FACEBOOK_APP_ID': os.getenv('FACEBOOK_APP_ID'),\n    'TWITTER_API_KEY': os.getenv('TWITTER_API_KEY'),\n    'GOOGLE_CLIENT_ID': os.getenv('GOOGLE_CLIENT_ID'),\n    'LINKEDIN_CLIENT_ID': os.getenv('LINKEDIN_CLIENT_ID'),\n}\n\n# Payment processing\nPAYMENT_SETTINGS = {\n    'STRIPE_PUBLIC_KEY': os.getenv('STRIPE_PUBLIC_KEY'),\n    'STRIPE_SECRET_KEY': os.getenv('STRIPE_SECRET_KEY'),\n    'PAYPAL_CLIENT_ID': os.getenv('PAYPAL_CLIENT_ID'),\n    'CURRENCY': 'USD',\n    'PAYMENT_SUCCESS_URL': '/payment/success/',\n    'PAYMENT_CANCEL_URL': '/payment/cancel/',\n}\n\n# Analytics and tracking\nANALYTICS = {\n    'GOOGLE_ANALYTICS_ID': os.getenv('GOOGLE_ANALYTICS_ID'),\n    'MIXPANEL_TOKEN': os.getenv('MIXPANEL_TOKEN'),\n    'HOTJAR_ID': os.getenv('HOTJAR_ID'),\n    'ENABLE_TRACKING': not DEBUG,\n}\n\n# Content management\nCONTENT_SETTINGS = {\n    'ENABLE_COMMENTS': True,\n    'MODERATE_COMMENTS': True,\n    'ALLOW_ANONYMOUS_COMMENTS': False,\n    'MAX_COMMENT_LENGTH': 1000,\n    'ENABLE_MARKDOWN': True,\n    'ENABLE_SYNTAX_HIGHLIGHTING': True,\n}\n\n# Search configuration\nSEARCH_SETTINGS = {\n    'ENABLE_SEARCH': True,\n    'SEARCH_BACKEND': 'elasticsearch',  # elasticsearch, whoosh, solr\n    'ELASTICSEARCH_URL': os.getenv('ELASTICSEARCH_URL', 'http://localhost:9200'),\n    'SEARCH_RESULTS_PER_PAGE': 20,\n    'ENABLE_AUTOCOMPLETE': True,\n}\n",[1079,9463,9464,9469,9473,9478,9483,9488,9492,9496,9501,9514,9528,9542,9555,9569,9573,9577,9586,9601,9616,9631,9646,9661,9676,9680,9684,9689,9711,9783,9793,9803,9813,9817,9822,9836,9850,9859,9879,9898,9918,9922,9926,9931,9940,9955,9970,9985,10008,10012,10016,10021,10030,10057,10084,10111,10138,10142,10146,10151,10160,10186,10212,10239,10259,10279,10299,10303,10307,10312,10321,10347,10374,10401,10418,10422,10426,10431,10440,10455,10470,10485,10500,10515,10530,10534,10538,10543,10552,10567,10590,10626,10641,10656],{"__ignoreMap":1077},[1082,9465,9466],{"class":1084,"line":1085},[1082,9467,9468],{"class":1088},"# settings.py - Custom settings organization\n",[1082,9470,9471],{"class":1084,"line":1092},[1082,9472,1121],{"emptyLinePlaceholder":1120},[1082,9474,9475],{"class":1084,"line":1103},[1082,9476,9477],{"class":1088},"# Group related settings together\n",[1082,9479,9480],{"class":1084,"line":1117},[1082,9481,9482],{"class":1088},"# ================================\n",[1082,9484,9485],{"class":1084,"line":1124},[1082,9486,9487],{"class":1088},"# CUSTOM APPLICATION SETTINGS\n",[1082,9489,9490],{"class":1084,"line":1130},[1082,9491,9482],{"class":1088},[1082,9493,9494],{"class":1084,"line":1171},[1082,9495,1121],{"emptyLinePlaceholder":1120},[1082,9497,9498],{"class":1084,"line":1176},[1082,9499,9500],{"class":1088},"# Site configuration\n",[1082,9502,9503,9505,9507,9509,9512],{"class":1084,"line":1182},[1082,9504,2950],{"class":1133},[1082,9506,1138],{"class":1137},[1082,9508,1191],{"class":1190},[1082,9510,9511],{"class":1194},"My Awesome Project",[1082,9513,1198],{"class":1190},[1082,9515,9516,9519,9521,9523,9526],{"class":1084,"line":1201},[1082,9517,9518],{"class":1133},"SITE_DESCRIPTION",[1082,9520,1138],{"class":1137},[1082,9522,1191],{"class":1190},[1082,9524,9525],{"class":1194},"A Django project that does amazing things",[1082,9527,1198],{"class":1190},[1082,9529,9530,9533,9535,9537,9540],{"class":1084,"line":1206},[1082,9531,9532],{"class":1133},"SITE_KEYWORDS",[1082,9534,1138],{"class":1137},[1082,9536,1191],{"class":1190},[1082,9538,9539],{"class":1194},"django, python, web, development",[1082,9541,1198],{"class":1190},[1082,9543,9544,9546,9548,9550,9553],{"class":1084,"line":1212},[1082,9545,3687],{"class":1133},[1082,9547,1138],{"class":1137},[1082,9549,1191],{"class":1190},[1082,9551,9552],{"class":1194},"contact@myproject.com",[1082,9554,1198],{"class":1190},[1082,9556,9557,9560,9562,9564,9567],{"class":1084,"line":1224},[1082,9558,9559],{"class":1133},"SUPPORT_EMAIL",[1082,9561,1138],{"class":1137},[1082,9563,1191],{"class":1190},[1082,9565,9566],{"class":1194},"support@myproject.com",[1082,9568,1198],{"class":1190},[1082,9570,9571],{"class":1084,"line":1229},[1082,9572,1121],{"emptyLinePlaceholder":1120},[1082,9574,9575],{"class":1084,"line":1240},[1082,9576,4629],{"class":1088},[1082,9578,9579,9582,9584],{"class":1084,"line":1245},[1082,9580,9581],{"class":1133},"FEATURES",[1082,9583,1138],{"class":1137},[1082,9585,1589],{"class":1137},[1082,9587,9588,9590,9593,9595,9597,9599],{"class":1084,"line":1251},[1082,9589,1265],{"class":1190},[1082,9591,9592],{"class":1194},"ENABLE_REGISTRATION",[1082,9594,1271],{"class":1190},[1082,9596,1517],{"class":1137},[1082,9598,1572],{"class":1220},[1082,9600,1274],{"class":1137},[1082,9602,9603,9605,9608,9610,9612,9614],{"class":1084,"line":1262},[1082,9604,1265],{"class":1190},[1082,9606,9607],{"class":1194},"ENABLE_SOCIAL_LOGIN",[1082,9609,1271],{"class":1190},[1082,9611,1517],{"class":1137},[1082,9613,1572],{"class":1220},[1082,9615,1274],{"class":1137},[1082,9617,9618,9620,9623,9625,9627,9629],{"class":1084,"line":1277},[1082,9619,1265],{"class":1190},[1082,9621,9622],{"class":1194},"ENABLE_EMAIL_VERIFICATION",[1082,9624,1271],{"class":1190},[1082,9626,1517],{"class":1137},[1082,9628,1572],{"class":1220},[1082,9630,1274],{"class":1137},[1082,9632,9633,9635,9638,9640,9642,9644],{"class":1084,"line":1289},[1082,9634,1265],{"class":1190},[1082,9636,9637],{"class":1194},"ENABLE_TWO_FACTOR_AUTH",[1082,9639,1271],{"class":1190},[1082,9641,1517],{"class":1137},[1082,9643,6696],{"class":1220},[1082,9645,1274],{"class":1137},[1082,9647,9648,9650,9653,9655,9657,9659],{"class":1084,"line":1301},[1082,9649,1265],{"class":1190},[1082,9651,9652],{"class":1194},"ENABLE_API",[1082,9654,1271],{"class":1190},[1082,9656,1517],{"class":1137},[1082,9658,1572],{"class":1220},[1082,9660,1274],{"class":1137},[1082,9662,9663,9665,9668,9670,9672,9674],{"class":1084,"line":1313},[1082,9664,1265],{"class":1190},[1082,9666,9667],{"class":1194},"ENABLE_ADMIN_DASHBOARD",[1082,9669,1271],{"class":1190},[1082,9671,1517],{"class":1137},[1082,9673,1572],{"class":1220},[1082,9675,1274],{"class":1137},[1082,9677,9678],{"class":1084,"line":1325},[1082,9679,1790],{"class":1137},[1082,9681,9682],{"class":1084,"line":1337},[1082,9683,1121],{"emptyLinePlaceholder":1120},[1082,9685,9686],{"class":1084,"line":1343},[1082,9687,9688],{"class":1088},"# Business logic settings\n",[1082,9690,9691,9694,9696,9698,9701,9704,9706,9708],{"class":1084,"line":1355},[1082,9692,9693],{"class":1133},"MAX_UPLOAD_SIZE",[1082,9695,1138],{"class":1137},[1082,9697,3393],{"class":2597},[1082,9699,9700],{"class":1546}," *",[1082,9702,9703],{"class":2597}," 1024",[1082,9705,9700],{"class":1546},[1082,9707,9703],{"class":2597},[1082,9709,9710],{"class":1088},"  # 10MB\n",[1082,9712,9713,9716,9718,9720,9722,9725,9727,9729,9731,9734,9736,9738,9740,9743,9745,9747,9749,9752,9754,9756,9758,9761,9763,9765,9767,9770,9772,9774,9776,9779,9781],{"class":1084,"line":1361},[1082,9714,9715],{"class":1133},"ALLOWED_FILE_TYPES",[1082,9717,1138],{"class":1137},[1082,9719,1541],{"class":1137},[1082,9721,1271],{"class":1190},[1082,9723,9724],{"class":1194},".jpg",[1082,9726,1271],{"class":1190},[1082,9728,2206],{"class":1137},[1082,9730,1191],{"class":1190},[1082,9732,9733],{"class":1194},".jpeg",[1082,9735,1271],{"class":1190},[1082,9737,2206],{"class":1137},[1082,9739,1191],{"class":1190},[1082,9741,9742],{"class":1194},".png",[1082,9744,1271],{"class":1190},[1082,9746,2206],{"class":1137},[1082,9748,1191],{"class":1190},[1082,9750,9751],{"class":1194},".gif",[1082,9753,1271],{"class":1190},[1082,9755,2206],{"class":1137},[1082,9757,1191],{"class":1190},[1082,9759,9760],{"class":1194},".pdf",[1082,9762,1271],{"class":1190},[1082,9764,2206],{"class":1137},[1082,9766,1191],{"class":1190},[1082,9768,9769],{"class":1194},".doc",[1082,9771,1271],{"class":1190},[1082,9773,2206],{"class":1137},[1082,9775,1191],{"class":1190},[1082,9777,9778],{"class":1194},".docx",[1082,9780,1271],{"class":1190},[1082,9782,1358],{"class":1137},[1082,9784,9785,9788,9790],{"class":1084,"line":1366},[1082,9786,9787],{"class":1133},"MAX_FILES_PER_UPLOAD",[1082,9789,1138],{"class":1137},[1082,9791,9792],{"class":2597}," 5\n",[1082,9794,9795,9798,9800],{"class":1084,"line":1376},[1082,9796,9797],{"class":1133},"DEFAULT_PAGINATION_SIZE",[1082,9799,1138],{"class":1137},[1082,9801,9802],{"class":2597}," 25\n",[1082,9804,9805,9808,9810],{"class":1084,"line":1388},[1082,9806,9807],{"class":1133},"MAX_PAGINATION_SIZE",[1082,9809,1138],{"class":1137},[1082,9811,9812],{"class":2597}," 100\n",[1082,9814,9815],{"class":1084,"line":1400},[1082,9816,1121],{"emptyLinePlaceholder":1120},[1082,9818,9819],{"class":1084,"line":1412},[1082,9820,9821],{"class":1088},"# API configuration\n",[1082,9823,9824,9827,9829,9831,9834],{"class":1084,"line":1424},[1082,9825,9826],{"class":1133},"API_VERSION",[1082,9828,1138],{"class":1137},[1082,9830,1191],{"class":1190},[1082,9832,9833],{"class":1194},"v1",[1082,9835,1198],{"class":1190},[1082,9837,9838,9841,9843,9845,9848],{"class":1084,"line":1436},[1082,9839,9840],{"class":1133},"API_RATE_LIMIT",[1082,9842,1138],{"class":1137},[1082,9844,1191],{"class":1190},[1082,9846,9847],{"class":1194},"1000/hour",[1082,9849,1198],{"class":1190},[1082,9851,9852,9855,9857],{"class":1084,"line":1448},[1082,9853,9854],{"class":1133},"API_THROTTLE_RATES",[1082,9856,1138],{"class":1137},[1082,9858,1589],{"class":1137},[1082,9860,9861,9863,9866,9868,9870,9872,9875,9877],{"class":1084,"line":1460},[1082,9862,1265],{"class":1190},[1082,9864,9865],{"class":1194},"anon",[1082,9867,1271],{"class":1190},[1082,9869,1517],{"class":1137},[1082,9871,1191],{"class":1190},[1082,9873,9874],{"class":1194},"100/hour",[1082,9876,1271],{"class":1190},[1082,9878,1274],{"class":1137},[1082,9880,9881,9883,9886,9888,9890,9892,9894,9896],{"class":1084,"line":1465},[1082,9882,1265],{"class":1190},[1082,9884,9885],{"class":1194},"user",[1082,9887,1271],{"class":1190},[1082,9889,1517],{"class":1137},[1082,9891,1191],{"class":1190},[1082,9893,9847],{"class":1194},[1082,9895,1271],{"class":1190},[1082,9897,1274],{"class":1137},[1082,9899,9900,9902,9905,9907,9909,9911,9914,9916],{"class":1084,"line":1470},[1082,9901,1265],{"class":1190},[1082,9903,9904],{"class":1194},"premium",[1082,9906,1271],{"class":1190},[1082,9908,1517],{"class":1137},[1082,9910,1191],{"class":1190},[1082,9912,9913],{"class":1194},"5000/hour",[1082,9915,1271],{"class":1190},[1082,9917,1274],{"class":1137},[1082,9919,9920],{"class":1084,"line":1485},[1082,9921,1790],{"class":1137},[1082,9923,9924],{"class":1084,"line":1490},[1082,9925,1121],{"emptyLinePlaceholder":1120},[1082,9927,9928],{"class":1084,"line":1500},[1082,9929,9930],{"class":1088},"# Notification settings\n",[1082,9932,9933,9936,9938],{"class":1084,"line":1506},[1082,9934,9935],{"class":1133},"NOTIFICATION_SETTINGS",[1082,9937,1138],{"class":1137},[1082,9939,1589],{"class":1137},[1082,9941,9942,9944,9947,9949,9951,9953],{"class":1084,"line":1529},[1082,9943,1265],{"class":1190},[1082,9945,9946],{"class":1194},"EMAIL_NOTIFICATIONS",[1082,9948,1271],{"class":1190},[1082,9950,1517],{"class":1137},[1082,9952,1572],{"class":1220},[1082,9954,1274],{"class":1137},[1082,9956,9957,9959,9962,9964,9966,9968],{"class":1084,"line":1560},[1082,9958,1265],{"class":1190},[1082,9960,9961],{"class":1194},"SMS_NOTIFICATIONS",[1082,9963,1271],{"class":1190},[1082,9965,1517],{"class":1137},[1082,9967,6696],{"class":1220},[1082,9969,1274],{"class":1137},[1082,9971,9972,9974,9977,9979,9981,9983],{"class":1084,"line":1577},[1082,9973,1265],{"class":1190},[1082,9975,9976],{"class":1194},"PUSH_NOTIFICATIONS",[1082,9978,1271],{"class":1190},[1082,9980,1517],{"class":1137},[1082,9982,1572],{"class":1220},[1082,9984,1274],{"class":1137},[1082,9986,9987,9989,9992,9994,9996,9998,10001,10003,10005],{"class":1084,"line":1592},[1082,9988,1265],{"class":1190},[1082,9990,9991],{"class":1194},"DIGEST_FREQUENCY",[1082,9993,1271],{"class":1190},[1082,9995,1517],{"class":1137},[1082,9997,1191],{"class":1190},[1082,9999,10000],{"class":1194},"weekly",[1082,10002,1271],{"class":1190},[1082,10004,2206],{"class":1137},[1082,10006,10007],{"class":1088},"  # daily, weekly, monthly\n",[1082,10009,10010],{"class":1084,"line":1607},[1082,10011,1790],{"class":1137},[1082,10013,10014],{"class":1084,"line":1620},[1082,10015,1121],{"emptyLinePlaceholder":1120},[1082,10017,10018],{"class":1084,"line":1632},[1082,10019,10020],{"class":1088},"# Social media integration\n",[1082,10022,10023,10026,10028],{"class":1084,"line":1644},[1082,10024,10025],{"class":1133},"SOCIAL_MEDIA",[1082,10027,1138],{"class":1137},[1082,10029,1589],{"class":1137},[1082,10031,10032,10034,10037,10039,10041,10043,10045,10047,10049,10051,10053,10055],{"class":1084,"line":1656},[1082,10033,1265],{"class":1190},[1082,10035,10036],{"class":1194},"FACEBOOK_APP_ID",[1082,10038,1271],{"class":1190},[1082,10040,1517],{"class":1137},[1082,10042,3956],{"class":1099},[1082,10044,1165],{"class":1137},[1082,10046,3961],{"class":1141},[1082,10048,1145],{"class":1137},[1082,10050,1271],{"class":1190},[1082,10052,10036],{"class":1194},[1082,10054,1271],{"class":1190},[1082,10056,2964],{"class":1137},[1082,10058,10059,10061,10064,10066,10068,10070,10072,10074,10076,10078,10080,10082],{"class":1084,"line":1662},[1082,10060,1265],{"class":1190},[1082,10062,10063],{"class":1194},"TWITTER_API_KEY",[1082,10065,1271],{"class":1190},[1082,10067,1517],{"class":1137},[1082,10069,3956],{"class":1099},[1082,10071,1165],{"class":1137},[1082,10073,3961],{"class":1141},[1082,10075,1145],{"class":1137},[1082,10077,1271],{"class":1190},[1082,10079,10063],{"class":1194},[1082,10081,1271],{"class":1190},[1082,10083,2964],{"class":1137},[1082,10085,10086,10088,10091,10093,10095,10097,10099,10101,10103,10105,10107,10109],{"class":1084,"line":1668},[1082,10087,1265],{"class":1190},[1082,10089,10090],{"class":1194},"GOOGLE_CLIENT_ID",[1082,10092,1271],{"class":1190},[1082,10094,1517],{"class":1137},[1082,10096,3956],{"class":1099},[1082,10098,1165],{"class":1137},[1082,10100,3961],{"class":1141},[1082,10102,1145],{"class":1137},[1082,10104,1271],{"class":1190},[1082,10106,10090],{"class":1194},[1082,10108,1271],{"class":1190},[1082,10110,2964],{"class":1137},[1082,10112,10113,10115,10118,10120,10122,10124,10126,10128,10130,10132,10134,10136],{"class":1084,"line":1674},[1082,10114,1265],{"class":1190},[1082,10116,10117],{"class":1194},"LINKEDIN_CLIENT_ID",[1082,10119,1271],{"class":1190},[1082,10121,1517],{"class":1137},[1082,10123,3956],{"class":1099},[1082,10125,1165],{"class":1137},[1082,10127,3961],{"class":1141},[1082,10129,1145],{"class":1137},[1082,10131,1271],{"class":1190},[1082,10133,10117],{"class":1194},[1082,10135,1271],{"class":1190},[1082,10137,2964],{"class":1137},[1082,10139,10140],{"class":1084,"line":1679},[1082,10141,1790],{"class":1137},[1082,10143,10144],{"class":1084,"line":1684},[1082,10145,1121],{"emptyLinePlaceholder":1120},[1082,10147,10148],{"class":1084,"line":1699},[1082,10149,10150],{"class":1088},"# Payment processing\n",[1082,10152,10153,10156,10158],{"class":1084,"line":1704},[1082,10154,10155],{"class":1133},"PAYMENT_SETTINGS",[1082,10157,1138],{"class":1137},[1082,10159,1589],{"class":1137},[1082,10161,10162,10164,10166,10168,10170,10172,10174,10176,10178,10180,10182,10184],{"class":1084,"line":1710},[1082,10163,1265],{"class":1190},[1082,10165,7074],{"class":1194},[1082,10167,1271],{"class":1190},[1082,10169,1517],{"class":1137},[1082,10171,3956],{"class":1099},[1082,10173,1165],{"class":1137},[1082,10175,3961],{"class":1141},[1082,10177,1145],{"class":1137},[1082,10179,1271],{"class":1190},[1082,10181,7074],{"class":1194},[1082,10183,1271],{"class":1190},[1082,10185,2964],{"class":1137},[1082,10187,10188,10190,10192,10194,10196,10198,10200,10202,10204,10206,10208,10210],{"class":1084,"line":1720},[1082,10189,1265],{"class":1190},[1082,10191,7084],{"class":1194},[1082,10193,1271],{"class":1190},[1082,10195,1517],{"class":1137},[1082,10197,3956],{"class":1099},[1082,10199,1165],{"class":1137},[1082,10201,3961],{"class":1141},[1082,10203,1145],{"class":1137},[1082,10205,1271],{"class":1190},[1082,10207,7084],{"class":1194},[1082,10209,1271],{"class":1190},[1082,10211,2964],{"class":1137},[1082,10213,10214,10216,10219,10221,10223,10225,10227,10229,10231,10233,10235,10237],{"class":1084,"line":1734},[1082,10215,1265],{"class":1190},[1082,10217,10218],{"class":1194},"PAYPAL_CLIENT_ID",[1082,10220,1271],{"class":1190},[1082,10222,1517],{"class":1137},[1082,10224,3956],{"class":1099},[1082,10226,1165],{"class":1137},[1082,10228,3961],{"class":1141},[1082,10230,1145],{"class":1137},[1082,10232,1271],{"class":1190},[1082,10234,10218],{"class":1194},[1082,10236,1271],{"class":1190},[1082,10238,2964],{"class":1137},[1082,10240,10241,10243,10246,10248,10250,10252,10255,10257],{"class":1084,"line":1755},[1082,10242,1265],{"class":1190},[1082,10244,10245],{"class":1194},"CURRENCY",[1082,10247,1271],{"class":1190},[1082,10249,1517],{"class":1137},[1082,10251,1191],{"class":1190},[1082,10253,10254],{"class":1194},"USD",[1082,10256,1271],{"class":1190},[1082,10258,1274],{"class":1137},[1082,10260,10261,10263,10266,10268,10270,10272,10275,10277],{"class":1084,"line":1781},[1082,10262,1265],{"class":1190},[1082,10264,10265],{"class":1194},"PAYMENT_SUCCESS_URL",[1082,10267,1271],{"class":1190},[1082,10269,1517],{"class":1137},[1082,10271,1191],{"class":1190},[1082,10273,10274],{"class":1194},"/payment/success/",[1082,10276,1271],{"class":1190},[1082,10278,1274],{"class":1137},[1082,10280,10281,10283,10286,10288,10290,10292,10295,10297],{"class":1084,"line":1787},[1082,10282,1265],{"class":1190},[1082,10284,10285],{"class":1194},"PAYMENT_CANCEL_URL",[1082,10287,1271],{"class":1190},[1082,10289,1517],{"class":1137},[1082,10291,1191],{"class":1190},[1082,10293,10294],{"class":1194},"/payment/cancel/",[1082,10296,1271],{"class":1190},[1082,10298,1274],{"class":1137},[1082,10300,10301],{"class":1084,"line":1793},[1082,10302,1790],{"class":1137},[1082,10304,10305],{"class":1084,"line":1798},[1082,10306,1121],{"emptyLinePlaceholder":1120},[1082,10308,10309],{"class":1084,"line":1804},[1082,10310,10311],{"class":1088},"# Analytics and tracking\n",[1082,10313,10314,10317,10319],{"class":1084,"line":1819},[1082,10315,10316],{"class":1133},"ANALYTICS",[1082,10318,1138],{"class":1137},[1082,10320,1589],{"class":1137},[1082,10322,10323,10325,10327,10329,10331,10333,10335,10337,10339,10341,10343,10345],{"class":1084,"line":1834},[1082,10324,1265],{"class":1190},[1082,10326,3719],{"class":1194},[1082,10328,1271],{"class":1190},[1082,10330,1517],{"class":1137},[1082,10332,3956],{"class":1099},[1082,10334,1165],{"class":1137},[1082,10336,3961],{"class":1141},[1082,10338,1145],{"class":1137},[1082,10340,1271],{"class":1190},[1082,10342,3719],{"class":1194},[1082,10344,1271],{"class":1190},[1082,10346,2964],{"class":1137},[1082,10348,10349,10351,10354,10356,10358,10360,10362,10364,10366,10368,10370,10372],{"class":1084,"line":1844},[1082,10350,1265],{"class":1190},[1082,10352,10353],{"class":1194},"MIXPANEL_TOKEN",[1082,10355,1271],{"class":1190},[1082,10357,1517],{"class":1137},[1082,10359,3956],{"class":1099},[1082,10361,1165],{"class":1137},[1082,10363,3961],{"class":1141},[1082,10365,1145],{"class":1137},[1082,10367,1271],{"class":1190},[1082,10369,10353],{"class":1194},[1082,10371,1271],{"class":1190},[1082,10373,2964],{"class":1137},[1082,10375,10376,10378,10381,10383,10385,10387,10389,10391,10393,10395,10397,10399],{"class":1084,"line":1854},[1082,10377,1265],{"class":1190},[1082,10379,10380],{"class":1194},"HOTJAR_ID",[1082,10382,1271],{"class":1190},[1082,10384,1517],{"class":1137},[1082,10386,3956],{"class":1099},[1082,10388,1165],{"class":1137},[1082,10390,3961],{"class":1141},[1082,10392,1145],{"class":1137},[1082,10394,1271],{"class":1190},[1082,10396,10380],{"class":1194},[1082,10398,1271],{"class":1190},[1082,10400,2964],{"class":1137},[1082,10402,10403,10405,10408,10410,10412,10414,10416],{"class":1084,"line":1859},[1082,10404,1265],{"class":1190},[1082,10406,10407],{"class":1194},"ENABLE_TRACKING",[1082,10409,1271],{"class":1190},[1082,10411,1517],{"class":1137},[1082,10413,5066],{"class":1546},[1082,10415,5987],{"class":1133},[1082,10417,1274],{"class":1137},[1082,10419,10420],{"class":1084,"line":1865},[1082,10421,1790],{"class":1137},[1082,10423,10424],{"class":1084,"line":1880},[1082,10425,1121],{"emptyLinePlaceholder":1120},[1082,10427,10428],{"class":1084,"line":1903},[1082,10429,10430],{"class":1088},"# Content management\n",[1082,10432,10433,10436,10438],{"class":1084,"line":1922},[1082,10434,10435],{"class":1133},"CONTENT_SETTINGS",[1082,10437,1138],{"class":1137},[1082,10439,1589],{"class":1137},[1082,10441,10442,10444,10447,10449,10451,10453],{"class":1084,"line":1927},[1082,10443,1265],{"class":1190},[1082,10445,10446],{"class":1194},"ENABLE_COMMENTS",[1082,10448,1271],{"class":1190},[1082,10450,1517],{"class":1137},[1082,10452,1572],{"class":1220},[1082,10454,1274],{"class":1137},[1082,10456,10457,10459,10462,10464,10466,10468],{"class":1084,"line":1933},[1082,10458,1265],{"class":1190},[1082,10460,10461],{"class":1194},"MODERATE_COMMENTS",[1082,10463,1271],{"class":1190},[1082,10465,1517],{"class":1137},[1082,10467,1572],{"class":1220},[1082,10469,1274],{"class":1137},[1082,10471,10472,10474,10477,10479,10481,10483],{"class":1084,"line":1948},[1082,10473,1265],{"class":1190},[1082,10475,10476],{"class":1194},"ALLOW_ANONYMOUS_COMMENTS",[1082,10478,1271],{"class":1190},[1082,10480,1517],{"class":1137},[1082,10482,6696],{"class":1220},[1082,10484,1274],{"class":1137},[1082,10486,10487,10489,10492,10494,10496,10498],{"class":1084,"line":1967},[1082,10488,1265],{"class":1190},[1082,10490,10491],{"class":1194},"MAX_COMMENT_LENGTH",[1082,10493,1271],{"class":1190},[1082,10495,1517],{"class":1137},[1082,10497,3316],{"class":2597},[1082,10499,1274],{"class":1137},[1082,10501,10502,10504,10507,10509,10511,10513],{"class":1084,"line":1972},[1082,10503,1265],{"class":1190},[1082,10505,10506],{"class":1194},"ENABLE_MARKDOWN",[1082,10508,1271],{"class":1190},[1082,10510,1517],{"class":1137},[1082,10512,1572],{"class":1220},[1082,10514,1274],{"class":1137},[1082,10516,10517,10519,10522,10524,10526,10528],{"class":1084,"line":1978},[1082,10518,1265],{"class":1190},[1082,10520,10521],{"class":1194},"ENABLE_SYNTAX_HIGHLIGHTING",[1082,10523,1271],{"class":1190},[1082,10525,1517],{"class":1137},[1082,10527,1572],{"class":1220},[1082,10529,1274],{"class":1137},[1082,10531,10532],{"class":1084,"line":4996},[1082,10533,1790],{"class":1137},[1082,10535,10536],{"class":1084,"line":6667},[1082,10537,1121],{"emptyLinePlaceholder":1120},[1082,10539,10540],{"class":1084,"line":6684},[1082,10541,10542],{"class":1088},"# Search configuration\n",[1082,10544,10545,10548,10550],{"class":1084,"line":6701},[1082,10546,10547],{"class":1133},"SEARCH_SETTINGS",[1082,10549,1138],{"class":1137},[1082,10551,1589],{"class":1137},[1082,10553,10554,10556,10559,10561,10563,10565],{"class":1084,"line":6715},[1082,10555,1265],{"class":1190},[1082,10557,10558],{"class":1194},"ENABLE_SEARCH",[1082,10560,1271],{"class":1190},[1082,10562,1517],{"class":1137},[1082,10564,1572],{"class":1220},[1082,10566,1274],{"class":1137},[1082,10568,10569,10571,10574,10576,10578,10580,10583,10585,10587],{"class":1084,"line":6729},[1082,10570,1265],{"class":1190},[1082,10572,10573],{"class":1194},"SEARCH_BACKEND",[1082,10575,1271],{"class":1190},[1082,10577,1517],{"class":1137},[1082,10579,1191],{"class":1190},[1082,10581,10582],{"class":1194},"elasticsearch",[1082,10584,1271],{"class":1190},[1082,10586,2206],{"class":1137},[1082,10588,10589],{"class":1088},"  # elasticsearch, whoosh, solr\n",[1082,10591,10592,10594,10597,10599,10601,10603,10605,10607,10609,10611,10613,10615,10617,10619,10622,10624],{"class":1084,"line":6750},[1082,10593,1265],{"class":1190},[1082,10595,10596],{"class":1194},"ELASTICSEARCH_URL",[1082,10598,1271],{"class":1190},[1082,10600,1517],{"class":1137},[1082,10602,3956],{"class":1099},[1082,10604,1165],{"class":1137},[1082,10606,3961],{"class":1141},[1082,10608,1145],{"class":1137},[1082,10610,1271],{"class":1190},[1082,10612,10596],{"class":1194},[1082,10614,1271],{"class":1190},[1082,10616,2206],{"class":1137},[1082,10618,1191],{"class":1190},[1082,10620,10621],{"class":1194},"http://localhost:9200",[1082,10623,1271],{"class":1190},[1082,10625,2964],{"class":1137},[1082,10627,10628,10630,10633,10635,10637,10639],{"class":1084,"line":6770},[1082,10629,1265],{"class":1190},[1082,10631,10632],{"class":1194},"SEARCH_RESULTS_PER_PAGE",[1082,10634,1271],{"class":1190},[1082,10636,1517],{"class":1137},[1082,10638,9443],{"class":2597},[1082,10640,1274],{"class":1137},[1082,10642,10643,10645,10648,10650,10652,10654],{"class":1084,"line":6791},[1082,10644,1265],{"class":1190},[1082,10646,10647],{"class":1194},"ENABLE_AUTOCOMPLETE",[1082,10649,1271],{"class":1190},[1082,10651,1517],{"class":1137},[1082,10653,1572],{"class":1220},[1082,10655,1274],{"class":1137},[1082,10657,10658],{"class":1084,"line":6796},[1082,10659,1790],{"class":1137},[1035,10661,10663],{"id":10662},"settings-validation","Settings Validation",[1072,10665,10667],{"className":1074,"code":10666,"language":1076,"meta":1077,"style":1077},"# settings_validation.py\nimport os\nfrom django.core.exceptions import ImproperlyConfigured\n\ndef validate_settings():\n    \"\"\"Validate custom settings\"\"\"\n    \n    # Required environment variables\n    required_env_vars = [\n        'SECRET_KEY',\n        'DATABASE_URL',\n    ]\n    \n    for var in required_env_vars:\n        if not os.getenv(var):\n            raise ImproperlyConfigured(f\"Environment variable {var} is required\")\n    \n    # Validate feature flags\n    from django.conf import settings\n    \n    if hasattr(settings, 'FEATURES'):\n        if settings.FEATURES.get('ENABLE_EMAIL_VERIFICATION') and not settings.EMAIL_HOST:\n            raise ImproperlyConfigured(\n                \"EMAIL_HOST must be configured when email verification is enabled\"\n            )\n    \n    # Validate file upload settings\n    if hasattr(settings, 'MAX_UPLOAD_SIZE'):\n        if settings.MAX_UPLOAD_SIZE > 100 * 1024 * 1024:  # 100MB\n            raise ImproperlyConfigured(\"MAX_UPLOAD_SIZE cannot exceed 100MB\")\n    \n    # Validate payment settings\n    if hasattr(settings, 'PAYMENT_SETTINGS'):\n        payment = settings.PAYMENT_SETTINGS\n        if not payment.get('STRIPE_SECRET_KEY') and not payment.get('PAYPAL_CLIENT_ID'):\n            raise ImproperlyConfigured(\n                \"At least one payment provider must be configured\"\n            )\n\n# In settings.py\nvalidate_settings()\n",[1079,10668,10669,10674,10680,10701,10705,10714,10723,10727,10732,10741,10751,10762,10767,10771,10787,10806,10832,10836,10841,10856,10860,10880,10918,10926,10936,10940,10944,10949,10969,10998,11015,11019,11024,11044,11058,11101,11109,11118,11122,11126,11131],{"__ignoreMap":1077},[1082,10670,10671],{"class":1084,"line":1085},[1082,10672,10673],{"class":1088},"# settings_validation.py\n",[1082,10675,10676,10678],{"class":1084,"line":1092},[1082,10677,1096],{"class":1095},[1082,10679,1100],{"class":1099},[1082,10681,10682,10684,10686,10688,10691,10693,10696,10698],{"class":1084,"line":1103},[1082,10683,1106],{"class":1095},[1082,10685,2161],{"class":1099},[1082,10687,1165],{"class":1137},[1082,10689,10690],{"class":1099},"core",[1082,10692,1165],{"class":1137},[1082,10694,10695],{"class":1099},"exceptions ",[1082,10697,1096],{"class":1095},[1082,10699,10700],{"class":1099}," ImproperlyConfigured\n",[1082,10702,10703],{"class":1084,"line":1117},[1082,10704,1121],{"emptyLinePlaceholder":1120},[1082,10706,10707,10709,10712],{"class":1084,"line":1124},[1082,10708,2720],{"class":2021},[1082,10710,10711],{"class":2723}," validate_settings",[1082,10713,5041],{"class":1137},[1082,10715,10716,10718,10721],{"class":1084,"line":1130},[1082,10717,3615],{"class":3614},[1082,10719,10720],{"class":3618},"Validate custom settings",[1082,10722,3622],{"class":3614},[1082,10724,10725],{"class":1084,"line":1171},[1082,10726,2775],{"class":1099},[1082,10728,10729],{"class":1084,"line":1176},[1082,10730,10731],{"class":1088},"    # Required environment variables\n",[1082,10733,10734,10737,10739],{"class":1084,"line":1182},[1082,10735,10736],{"class":1099},"    required_env_vars ",[1082,10738,2029],{"class":1137},[1082,10740,1259],{"class":1137},[1082,10742,10743,10745,10747,10749],{"class":1084,"line":1201},[1082,10744,1509],{"class":1190},[1082,10746,1185],{"class":1194},[1082,10748,1271],{"class":1190},[1082,10750,1274],{"class":1137},[1082,10752,10753,10755,10758,10760],{"class":1084,"line":1206},[1082,10754,1509],{"class":1190},[1082,10756,10757],{"class":1194},"DATABASE_URL",[1082,10759,1271],{"class":1190},[1082,10761,1274],{"class":1137},[1082,10763,10764],{"class":1084,"line":1212},[1082,10765,10766],{"class":1137},"    ]\n",[1082,10768,10769],{"class":1084,"line":1224},[1082,10770,2775],{"class":1099},[1082,10772,10773,10776,10779,10782,10785],{"class":1084,"line":1229},[1082,10774,10775],{"class":1095},"    for",[1082,10777,10778],{"class":1099}," var ",[1082,10780,10781],{"class":1095},"in",[1082,10783,10784],{"class":1099}," required_env_vars",[1082,10786,2753],{"class":1137},[1082,10788,10789,10791,10793,10795,10797,10799,10801,10804],{"class":1084,"line":1240},[1082,10790,3129],{"class":1095},[1082,10792,5066],{"class":1546},[1082,10794,3956],{"class":1099},[1082,10796,1165],{"class":1137},[1082,10798,3961],{"class":1141},[1082,10800,1145],{"class":1137},[1082,10802,10803],{"class":1141},"var",[1082,10805,2733],{"class":1137},[1082,10807,10808,10810,10813,10815,10818,10821,10823,10825,10827,10830],{"class":1084,"line":1245},[1082,10809,3426],{"class":1095},[1082,10811,10812],{"class":1141}," ImproperlyConfigured",[1082,10814,1145],{"class":1137},[1082,10816,10817],{"class":2021},"f",[1082,10819,10820],{"class":1194},"\"Environment variable ",[1082,10822,3153],{"class":3152},[1082,10824,10803],{"class":1141},[1082,10826,3171],{"class":3152},[1082,10828,10829],{"class":1194}," is required\"",[1082,10831,2216],{"class":1137},[1082,10833,10834],{"class":1084,"line":1251},[1082,10835,2775],{"class":1099},[1082,10837,10838],{"class":1084,"line":1262},[1082,10839,10840],{"class":1088},"    # Validate feature flags\n",[1082,10842,10843,10846,10848,10850,10852,10854],{"class":1084,"line":1277},[1082,10844,10845],{"class":1095},"    from",[1082,10847,2161],{"class":1099},[1082,10849,1165],{"class":1137},[1082,10851,2166],{"class":1099},[1082,10853,1096],{"class":1095},[1082,10855,2171],{"class":1099},[1082,10857,10858],{"class":1084,"line":1289},[1082,10859,2775],{"class":1099},[1082,10861,10862,10864,10866,10868,10870,10872,10874,10876,10878],{"class":1084,"line":1301},[1082,10863,2743],{"class":1095},[1082,10865,2810],{"class":2296},[1082,10867,1145],{"class":1137},[1082,10869,2061],{"class":1141},[1082,10871,2206],{"class":1137},[1082,10873,1191],{"class":1190},[1082,10875,9581],{"class":1194},[1082,10877,1271],{"class":1190},[1082,10879,2733],{"class":1137},[1082,10881,10882,10884,10886,10888,10890,10892,10895,10897,10899,10901,10903,10905,10908,10910,10912,10914,10916],{"class":1084,"line":1313},[1082,10883,3129],{"class":1095},[1082,10885,2746],{"class":1099},[1082,10887,1165],{"class":1137},[1082,10889,9581],{"class":2332},[1082,10891,1165],{"class":1137},[1082,10893,10894],{"class":1141},"get",[1082,10896,1145],{"class":1137},[1082,10898,1271],{"class":1190},[1082,10900,9622],{"class":1194},[1082,10902,1271],{"class":1190},[1082,10904,2335],{"class":1137},[1082,10906,10907],{"class":1546}," and",[1082,10909,5066],{"class":1546},[1082,10911,2746],{"class":1099},[1082,10913,1165],{"class":1137},[1082,10915,7005],{"class":2332},[1082,10917,2753],{"class":1137},[1082,10919,10920,10922,10924],{"class":1084,"line":1325},[1082,10921,3426],{"class":1095},[1082,10923,10812],{"class":1141},[1082,10925,3272],{"class":1137},[1082,10927,10928,10931,10934],{"class":1084,"line":1337},[1082,10929,10930],{"class":1190},"                \"",[1082,10932,10933],{"class":1194},"EMAIL_HOST must be configured when email verification is enabled",[1082,10935,3174],{"class":1190},[1082,10937,10938],{"class":1084,"line":1343},[1082,10939,3458],{"class":1137},[1082,10941,10942],{"class":1084,"line":1355},[1082,10943,2775],{"class":1099},[1082,10945,10946],{"class":1084,"line":1361},[1082,10947,10948],{"class":1088},"    # Validate file upload settings\n",[1082,10950,10951,10953,10955,10957,10959,10961,10963,10965,10967],{"class":1084,"line":1366},[1082,10952,2743],{"class":1095},[1082,10954,2810],{"class":2296},[1082,10956,1145],{"class":1137},[1082,10958,2061],{"class":1141},[1082,10960,2206],{"class":1137},[1082,10962,1191],{"class":1190},[1082,10964,9693],{"class":1194},[1082,10966,1271],{"class":1190},[1082,10968,2733],{"class":1137},[1082,10970,10971,10973,10975,10977,10979,10982,10985,10987,10989,10991,10993,10995],{"class":1084,"line":1376},[1082,10972,3129],{"class":1095},[1082,10974,2746],{"class":1099},[1082,10976,1165],{"class":1137},[1082,10978,9693],{"class":2332},[1082,10980,10981],{"class":1546}," >",[1082,10983,10984],{"class":2597}," 100",[1082,10986,9700],{"class":1546},[1082,10988,9703],{"class":2597},[1082,10990,9700],{"class":1546},[1082,10992,9703],{"class":2597},[1082,10994,1517],{"class":1137},[1082,10996,10997],{"class":1088},"  # 100MB\n",[1082,10999,11000,11002,11004,11006,11008,11011,11013],{"class":1084,"line":1388},[1082,11001,3426],{"class":1095},[1082,11003,10812],{"class":1141},[1082,11005,1145],{"class":1137},[1082,11007,2763],{"class":1190},[1082,11009,11010],{"class":1194},"MAX_UPLOAD_SIZE cannot exceed 100MB",[1082,11012,2763],{"class":1190},[1082,11014,2216],{"class":1137},[1082,11016,11017],{"class":1084,"line":1400},[1082,11018,2775],{"class":1099},[1082,11020,11021],{"class":1084,"line":1412},[1082,11022,11023],{"class":1088},"    # Validate payment settings\n",[1082,11025,11026,11028,11030,11032,11034,11036,11038,11040,11042],{"class":1084,"line":1424},[1082,11027,2743],{"class":1095},[1082,11029,2810],{"class":2296},[1082,11031,1145],{"class":1137},[1082,11033,2061],{"class":1141},[1082,11035,2206],{"class":1137},[1082,11037,1191],{"class":1190},[1082,11039,10155],{"class":1194},[1082,11041,1271],{"class":1190},[1082,11043,2733],{"class":1137},[1082,11045,11046,11049,11051,11053,11055],{"class":1084,"line":1436},[1082,11047,11048],{"class":1099},"        payment ",[1082,11050,2029],{"class":1137},[1082,11052,2746],{"class":1099},[1082,11054,1165],{"class":1137},[1082,11056,11057],{"class":2332},"PAYMENT_SETTINGS\n",[1082,11059,11060,11062,11064,11067,11069,11071,11073,11075,11077,11079,11081,11083,11085,11087,11089,11091,11093,11095,11097,11099],{"class":1084,"line":1448},[1082,11061,3129],{"class":1095},[1082,11063,5066],{"class":1546},[1082,11065,11066],{"class":1099}," payment",[1082,11068,1165],{"class":1137},[1082,11070,10894],{"class":1141},[1082,11072,1145],{"class":1137},[1082,11074,1271],{"class":1190},[1082,11076,7084],{"class":1194},[1082,11078,1271],{"class":1190},[1082,11080,2335],{"class":1137},[1082,11082,10907],{"class":1546},[1082,11084,5066],{"class":1546},[1082,11086,11066],{"class":1099},[1082,11088,1165],{"class":1137},[1082,11090,10894],{"class":1141},[1082,11092,1145],{"class":1137},[1082,11094,1271],{"class":1190},[1082,11096,10218],{"class":1194},[1082,11098,1271],{"class":1190},[1082,11100,2733],{"class":1137},[1082,11102,11103,11105,11107],{"class":1084,"line":1460},[1082,11104,3426],{"class":1095},[1082,11106,10812],{"class":1141},[1082,11108,3272],{"class":1137},[1082,11110,11111,11113,11116],{"class":1084,"line":1465},[1082,11112,10930],{"class":1190},[1082,11114,11115],{"class":1194},"At least one payment provider must be configured",[1082,11117,3174],{"class":1190},[1082,11119,11120],{"class":1084,"line":1470},[1082,11121,3458],{"class":1137},[1082,11123,11124],{"class":1084,"line":1485},[1082,11125,1121],{"emptyLinePlaceholder":1120},[1082,11127,11128],{"class":1084,"line":1490},[1082,11129,11130],{"class":1088},"# In settings.py\n",[1082,11132,11133,11136],{"class":1084,"line":1500},[1082,11134,11135],{"class":1141},"validate_settings",[1082,11137,2229],{"class":1137},[1035,11139,11141],{"id":11140},"settings-documentation","Settings Documentation",[1072,11143,11145],{"className":1074,"code":11144,"language":1076,"meta":1077,"style":1077},"# settings_docs.py\n\"\"\"\nCustom Settings Documentation\n============================\n\nThis module documents all custom settings used in the project.\n\nSite Configuration:\n------------------\nSITE_NAME: str\n    The display name of the site (default: 'My Awesome Project')\n\nSITE_DESCRIPTION: str\n    Brief description of the site for meta tags\n\nCONTACT_EMAIL: str\n    Primary contact email address\n\nFeature Flags:\n-------------\nFEATURES: dict\n    Dictionary of feature flags to enable/disable functionality\n    \n    ENABLE_REGISTRATION: bool\n        Allow new user registration (default: True)\n    \n    ENABLE_SOCIAL_LOGIN: bool\n        Enable social media login (default: True)\n    \n    ENABLE_API: bool\n        Enable REST API endpoints (default: True)\n\nBusiness Logic:\n--------------\nMAX_UPLOAD_SIZE: int\n    Maximum file upload size in bytes (default: 10MB)\n\nALLOWED_FILE_TYPES: list\n    List of allowed file extensions for uploads\n\nAPI Configuration:\n-----------------\nAPI_RATE_LIMIT: str\n    Default rate limit for API endpoints (default: '1000/hour')\n\nAPI_THROTTLE_RATES: dict\n    Rate limits for different user types\n\nPayment Settings:\n----------------\nPAYMENT_SETTINGS: dict\n    Payment provider configuration\n    \n    STRIPE_PUBLIC_KEY: str\n        Stripe publishable key\n    \n    STRIPE_SECRET_KEY: str\n        Stripe secret key (keep secure!)\n    \n    CURRENCY: str\n        Default currency code (default: 'USD')\n\nUsage Examples:\n--------------\n    from django.conf import settings\n    \n    # Check feature flags\n    if settings.FEATURES['ENABLE_REGISTRATION']:\n        # Show registration form\n        pass\n    \n    # Use business logic settings\n    max_size = settings.MAX_UPLOAD_SIZE\n    \n    # Access payment settings\n    stripe_key = settings.PAYMENT_SETTINGS['STRIPE_PUBLIC_KEY']\n\"\"\"\n\n# Custom settings class for better organization\nclass CustomSettings:\n    \"\"\"Organized access to custom settings\"\"\"\n    \n    def __init__(self, settings_module):\n        self.settings = settings_module\n    \n    @property\n    def site_config(self):\n        \"\"\"Site configuration settings\"\"\"\n        return {\n            'name': getattr(self.settings, 'SITE_NAME', 'Django Site'),\n            'description': getattr(self.settings, 'SITE_DESCRIPTION', ''),\n            'contact_email': getattr(self.settings, 'CONTACT_EMAIL', ''),\n        }\n    \n    @property\n    def features(self):\n        \"\"\"Feature flags\"\"\"\n        return getattr(self.settings, 'FEATURES', {})\n    \n    @property\n    def upload_config(self):\n        \"\"\"File upload configuration\"\"\"\n        return {\n            'max_size': getattr(self.settings, 'MAX_UPLOAD_SIZE', 10 * 1024 * 1024),\n            'allowed_types': getattr(self.settings, 'ALLOWED_FILE_TYPES', []),\n            'max_files': getattr(self.settings, 'MAX_FILES_PER_UPLOAD', 5),\n        }\n    \n    def is_feature_enabled(self, feature_name):\n        \"\"\"Check if a feature is enabled\"\"\"\n        return self.features.get(feature_name, False)\n\n# Usage in views\nfrom django.conf import settings\ncustom_settings = CustomSettings(settings)\n\ndef my_view(request):\n    if custom_settings.is_feature_enabled('ENABLE_REGISTRATION'):\n        # Handle registration\n        pass\n",[1079,11146,11147,11152,11156,11161,11166,11170,11175,11179,11184,11189,11194,11199,11203,11208,11213,11217,11222,11227,11231,11236,11241,11246,11251,11255,11260,11265,11269,11274,11279,11283,11288,11293,11297,11302,11307,11312,11317,11321,11326,11331,11335,11340,11345,11350,11355,11359,11364,11369,11373,11378,11383,11388,11393,11397,11402,11407,11411,11416,11421,11425,11430,11435,11439,11444,11448,11453,11457,11462,11467,11472,11476,11480,11485,11490,11494,11499,11504,11508,11512,11517,11526,11535,11539,11557,11571,11575,11582,11595,11605,11611,11651,11686,11721,11725,11729,11735,11748,11757,11784,11788,11794,11807,11816,11822,11865,11898,11934,11938,11942,11960,11969,11995,11999,12004,12019,12035,12040,12053,12076,12082],{"__ignoreMap":1077},[1082,11148,11149],{"class":1084,"line":1085},[1082,11150,11151],{"class":1088},"# settings_docs.py\n",[1082,11153,11154],{"class":1084,"line":1092},[1082,11155,3622],{"class":3614},[1082,11157,11158],{"class":1084,"line":1103},[1082,11159,11160],{"class":3618},"Custom Settings Documentation\n",[1082,11162,11163],{"class":1084,"line":1117},[1082,11164,11165],{"class":3618},"============================\n",[1082,11167,11168],{"class":1084,"line":1124},[1082,11169,1121],{"emptyLinePlaceholder":1120},[1082,11171,11172],{"class":1084,"line":1130},[1082,11173,11174],{"class":3618},"This module documents all custom settings used in the project.\n",[1082,11176,11177],{"class":1084,"line":1171},[1082,11178,1121],{"emptyLinePlaceholder":1120},[1082,11180,11181],{"class":1084,"line":1176},[1082,11182,11183],{"class":3618},"Site Configuration:\n",[1082,11185,11186],{"class":1084,"line":1182},[1082,11187,11188],{"class":3618},"------------------\n",[1082,11190,11191],{"class":1084,"line":1201},[1082,11192,11193],{"class":3618},"SITE_NAME: str\n",[1082,11195,11196],{"class":1084,"line":1206},[1082,11197,11198],{"class":3618},"    The display name of the site (default: 'My Awesome Project')\n",[1082,11200,11201],{"class":1084,"line":1212},[1082,11202,1121],{"emptyLinePlaceholder":1120},[1082,11204,11205],{"class":1084,"line":1224},[1082,11206,11207],{"class":3618},"SITE_DESCRIPTION: str\n",[1082,11209,11210],{"class":1084,"line":1229},[1082,11211,11212],{"class":3618},"    Brief description of the site for meta tags\n",[1082,11214,11215],{"class":1084,"line":1240},[1082,11216,1121],{"emptyLinePlaceholder":1120},[1082,11218,11219],{"class":1084,"line":1245},[1082,11220,11221],{"class":3618},"CONTACT_EMAIL: str\n",[1082,11223,11224],{"class":1084,"line":1251},[1082,11225,11226],{"class":3618},"    Primary contact email address\n",[1082,11228,11229],{"class":1084,"line":1262},[1082,11230,1121],{"emptyLinePlaceholder":1120},[1082,11232,11233],{"class":1084,"line":1277},[1082,11234,11235],{"class":3618},"Feature Flags:\n",[1082,11237,11238],{"class":1084,"line":1289},[1082,11239,11240],{"class":3618},"-------------\n",[1082,11242,11243],{"class":1084,"line":1301},[1082,11244,11245],{"class":3618},"FEATURES: dict\n",[1082,11247,11248],{"class":1084,"line":1313},[1082,11249,11250],{"class":3618},"    Dictionary of feature flags to enable/disable functionality\n",[1082,11252,11253],{"class":1084,"line":1325},[1082,11254,2775],{"class":3618},[1082,11256,11257],{"class":1084,"line":1337},[1082,11258,11259],{"class":3618},"    ENABLE_REGISTRATION: bool\n",[1082,11261,11262],{"class":1084,"line":1343},[1082,11263,11264],{"class":3618},"        Allow new user registration (default: True)\n",[1082,11266,11267],{"class":1084,"line":1355},[1082,11268,2775],{"class":3618},[1082,11270,11271],{"class":1084,"line":1361},[1082,11272,11273],{"class":3618},"    ENABLE_SOCIAL_LOGIN: bool\n",[1082,11275,11276],{"class":1084,"line":1366},[1082,11277,11278],{"class":3618},"        Enable social media login (default: True)\n",[1082,11280,11281],{"class":1084,"line":1376},[1082,11282,2775],{"class":3618},[1082,11284,11285],{"class":1084,"line":1388},[1082,11286,11287],{"class":3618},"    ENABLE_API: bool\n",[1082,11289,11290],{"class":1084,"line":1400},[1082,11291,11292],{"class":3618},"        Enable REST API endpoints (default: True)\n",[1082,11294,11295],{"class":1084,"line":1412},[1082,11296,1121],{"emptyLinePlaceholder":1120},[1082,11298,11299],{"class":1084,"line":1424},[1082,11300,11301],{"class":3618},"Business Logic:\n",[1082,11303,11304],{"class":1084,"line":1436},[1082,11305,11306],{"class":3618},"--------------\n",[1082,11308,11309],{"class":1084,"line":1448},[1082,11310,11311],{"class":3618},"MAX_UPLOAD_SIZE: int\n",[1082,11313,11314],{"class":1084,"line":1460},[1082,11315,11316],{"class":3618},"    Maximum file upload size in bytes (default: 10MB)\n",[1082,11318,11319],{"class":1084,"line":1465},[1082,11320,1121],{"emptyLinePlaceholder":1120},[1082,11322,11323],{"class":1084,"line":1470},[1082,11324,11325],{"class":3618},"ALLOWED_FILE_TYPES: list\n",[1082,11327,11328],{"class":1084,"line":1485},[1082,11329,11330],{"class":3618},"    List of allowed file extensions for uploads\n",[1082,11332,11333],{"class":1084,"line":1490},[1082,11334,1121],{"emptyLinePlaceholder":1120},[1082,11336,11337],{"class":1084,"line":1500},[1082,11338,11339],{"class":3618},"API Configuration:\n",[1082,11341,11342],{"class":1084,"line":1506},[1082,11343,11344],{"class":3618},"-----------------\n",[1082,11346,11347],{"class":1084,"line":1529},[1082,11348,11349],{"class":3618},"API_RATE_LIMIT: str\n",[1082,11351,11352],{"class":1084,"line":1560},[1082,11353,11354],{"class":3618},"    Default rate limit for API endpoints (default: '1000/hour')\n",[1082,11356,11357],{"class":1084,"line":1577},[1082,11358,1121],{"emptyLinePlaceholder":1120},[1082,11360,11361],{"class":1084,"line":1592},[1082,11362,11363],{"class":3618},"API_THROTTLE_RATES: dict\n",[1082,11365,11366],{"class":1084,"line":1607},[1082,11367,11368],{"class":3618},"    Rate limits for different user types\n",[1082,11370,11371],{"class":1084,"line":1620},[1082,11372,1121],{"emptyLinePlaceholder":1120},[1082,11374,11375],{"class":1084,"line":1632},[1082,11376,11377],{"class":3618},"Payment Settings:\n",[1082,11379,11380],{"class":1084,"line":1644},[1082,11381,11382],{"class":3618},"----------------\n",[1082,11384,11385],{"class":1084,"line":1656},[1082,11386,11387],{"class":3618},"PAYMENT_SETTINGS: dict\n",[1082,11389,11390],{"class":1084,"line":1662},[1082,11391,11392],{"class":3618},"    Payment provider configuration\n",[1082,11394,11395],{"class":1084,"line":1668},[1082,11396,2775],{"class":3618},[1082,11398,11399],{"class":1084,"line":1674},[1082,11400,11401],{"class":3618},"    STRIPE_PUBLIC_KEY: str\n",[1082,11403,11404],{"class":1084,"line":1679},[1082,11405,11406],{"class":3618},"        Stripe publishable key\n",[1082,11408,11409],{"class":1084,"line":1684},[1082,11410,2775],{"class":3618},[1082,11412,11413],{"class":1084,"line":1699},[1082,11414,11415],{"class":3618},"    STRIPE_SECRET_KEY: str\n",[1082,11417,11418],{"class":1084,"line":1704},[1082,11419,11420],{"class":3618},"        Stripe secret key (keep secure!)\n",[1082,11422,11423],{"class":1084,"line":1710},[1082,11424,2775],{"class":3618},[1082,11426,11427],{"class":1084,"line":1720},[1082,11428,11429],{"class":3618},"    CURRENCY: str\n",[1082,11431,11432],{"class":1084,"line":1734},[1082,11433,11434],{"class":3618},"        Default currency code (default: 'USD')\n",[1082,11436,11437],{"class":1084,"line":1755},[1082,11438,1121],{"emptyLinePlaceholder":1120},[1082,11440,11441],{"class":1084,"line":1781},[1082,11442,11443],{"class":3618},"Usage Examples:\n",[1082,11445,11446],{"class":1084,"line":1787},[1082,11447,11306],{"class":3618},[1082,11449,11450],{"class":1084,"line":1793},[1082,11451,11452],{"class":3618},"    from django.conf import settings\n",[1082,11454,11455],{"class":1084,"line":1798},[1082,11456,2775],{"class":3618},[1082,11458,11459],{"class":1084,"line":1804},[1082,11460,11461],{"class":3618},"    # Check feature flags\n",[1082,11463,11464],{"class":1084,"line":1819},[1082,11465,11466],{"class":3618},"    if settings.FEATURES['ENABLE_REGISTRATION']:\n",[1082,11468,11469],{"class":1084,"line":1834},[1082,11470,11471],{"class":3618},"        # Show registration form\n",[1082,11473,11474],{"class":1084,"line":1844},[1082,11475,5332],{"class":3618},[1082,11477,11478],{"class":1084,"line":1854},[1082,11479,2775],{"class":3618},[1082,11481,11482],{"class":1084,"line":1859},[1082,11483,11484],{"class":3618},"    # Use business logic settings\n",[1082,11486,11487],{"class":1084,"line":1865},[1082,11488,11489],{"class":3618},"    max_size = settings.MAX_UPLOAD_SIZE\n",[1082,11491,11492],{"class":1084,"line":1880},[1082,11493,2775],{"class":3618},[1082,11495,11496],{"class":1084,"line":1903},[1082,11497,11498],{"class":3618},"    # Access payment settings\n",[1082,11500,11501],{"class":1084,"line":1922},[1082,11502,11503],{"class":3618},"    stripe_key = settings.PAYMENT_SETTINGS['STRIPE_PUBLIC_KEY']\n",[1082,11505,11506],{"class":1084,"line":1927},[1082,11507,3622],{"class":3614},[1082,11509,11510],{"class":1084,"line":1933},[1082,11511,1121],{"emptyLinePlaceholder":1120},[1082,11513,11514],{"class":1084,"line":1948},[1082,11515,11516],{"class":1088},"# Custom settings class for better organization\n",[1082,11518,11519,11521,11524],{"class":1084,"line":1967},[1082,11520,3017],{"class":2021},[1082,11522,11523],{"class":3020}," CustomSettings",[1082,11525,2753],{"class":1137},[1082,11527,11528,11530,11533],{"class":1084,"line":1972},[1082,11529,3615],{"class":3614},[1082,11531,11532],{"class":3618},"Organized access to custom settings",[1082,11534,3622],{"class":3614},[1082,11536,11537],{"class":1084,"line":1978},[1082,11538,2775],{"class":1099},[1082,11540,11541,11543,11546,11548,11550,11552,11555],{"class":1084,"line":4996},[1082,11542,3113],{"class":2021},[1082,11544,11545],{"class":2296}," __init__",[1082,11547,1145],{"class":1137},[1082,11549,3122],{"class":3121},[1082,11551,2206],{"class":1137},[1082,11553,11554],{"class":2729}," settings_module",[1082,11556,2733],{"class":1137},[1082,11558,11559,11562,11564,11566,11568],{"class":1084,"line":6667},[1082,11560,11561],{"class":1133},"        self",[1082,11563,1165],{"class":1137},[1082,11565,2061],{"class":1161},[1082,11567,1138],{"class":1137},[1082,11569,11570],{"class":1099}," settings_module\n",[1082,11572,11573],{"class":1084,"line":6684},[1082,11574,2775],{"class":1099},[1082,11576,11577,11579],{"class":1084,"line":6701},[1082,11578,5304],{"class":1137},[1082,11580,11581],{"class":5307},"property\n",[1082,11583,11584,11586,11589,11591,11593],{"class":1084,"line":6715},[1082,11585,3113],{"class":2021},[1082,11587,11588],{"class":2723}," site_config",[1082,11590,1145],{"class":1137},[1082,11592,3122],{"class":3121},[1082,11594,2733],{"class":1137},[1082,11596,11597,11600,11603],{"class":1084,"line":6729},[1082,11598,11599],{"class":3614},"        \"\"\"",[1082,11601,11602],{"class":3618},"Site configuration settings",[1082,11604,3622],{"class":3614},[1082,11606,11607,11609],{"class":1084,"line":6750},[1082,11608,3179],{"class":1095},[1082,11610,1589],{"class":1137},[1082,11612,11613,11615,11618,11620,11622,11624,11626,11628,11630,11632,11634,11636,11638,11640,11642,11644,11647,11649],{"class":1084,"line":6770},[1082,11614,1595],{"class":1190},[1082,11616,11617],{"class":1194},"name",[1082,11619,1271],{"class":1190},[1082,11621,1517],{"class":1137},[1082,11623,2858],{"class":2296},[1082,11625,1145],{"class":1137},[1082,11627,3122],{"class":1133},[1082,11629,1165],{"class":1137},[1082,11631,2061],{"class":1161},[1082,11633,2206],{"class":1137},[1082,11635,1191],{"class":1190},[1082,11637,2950],{"class":1194},[1082,11639,1271],{"class":1190},[1082,11641,2206],{"class":1137},[1082,11643,1191],{"class":1190},[1082,11645,11646],{"class":1194},"Django Site",[1082,11648,1271],{"class":1190},[1082,11650,2964],{"class":1137},[1082,11652,11653,11655,11658,11660,11662,11664,11666,11668,11670,11672,11674,11676,11678,11680,11682,11684],{"class":1084,"line":6791},[1082,11654,1595],{"class":1190},[1082,11656,11657],{"class":1194},"description",[1082,11659,1271],{"class":1190},[1082,11661,1517],{"class":1137},[1082,11663,2858],{"class":2296},[1082,11665,1145],{"class":1137},[1082,11667,3122],{"class":1133},[1082,11669,1165],{"class":1137},[1082,11671,2061],{"class":1161},[1082,11673,2206],{"class":1137},[1082,11675,1191],{"class":1190},[1082,11677,9518],{"class":1194},[1082,11679,1271],{"class":1190},[1082,11681,2206],{"class":1137},[1082,11683,3710],{"class":1190},[1082,11685,2964],{"class":1137},[1082,11687,11688,11690,11693,11695,11697,11699,11701,11703,11705,11707,11709,11711,11713,11715,11717,11719],{"class":1084,"line":6796},[1082,11689,1595],{"class":1190},[1082,11691,11692],{"class":1194},"contact_email",[1082,11694,1271],{"class":1190},[1082,11696,1517],{"class":1137},[1082,11698,2858],{"class":2296},[1082,11700,1145],{"class":1137},[1082,11702,3122],{"class":1133},[1082,11704,1165],{"class":1137},[1082,11706,2061],{"class":1161},[1082,11708,2206],{"class":1137},[1082,11710,1191],{"class":1190},[1082,11712,3687],{"class":1194},[1082,11714,1271],{"class":1190},[1082,11716,2206],{"class":1137},[1082,11718,3710],{"class":1190},[1082,11720,2964],{"class":1137},[1082,11722,11723],{"class":1084,"line":6801},[1082,11724,4252],{"class":1137},[1082,11726,11727],{"class":1084,"line":6815},[1082,11728,2775],{"class":1099},[1082,11730,11731,11733],{"class":1084,"line":6829},[1082,11732,5304],{"class":1137},[1082,11734,11581],{"class":5307},[1082,11736,11737,11739,11742,11744,11746],{"class":1084,"line":6850},[1082,11738,3113],{"class":2021},[1082,11740,11741],{"class":2723}," features",[1082,11743,1145],{"class":1137},[1082,11745,3122],{"class":3121},[1082,11747,2733],{"class":1137},[1082,11749,11750,11752,11755],{"class":1084,"line":6869},[1082,11751,11599],{"class":3614},[1082,11753,11754],{"class":3618},"Feature flags",[1082,11756,3622],{"class":3614},[1082,11758,11759,11761,11763,11765,11767,11769,11771,11773,11775,11777,11779,11781],{"class":1084,"line":6885},[1082,11760,3179],{"class":1095},[1082,11762,2858],{"class":2296},[1082,11764,1145],{"class":1137},[1082,11766,3122],{"class":1133},[1082,11768,1165],{"class":1137},[1082,11770,2061],{"class":1161},[1082,11772,2206],{"class":1137},[1082,11774,1191],{"class":1190},[1082,11776,9581],{"class":1194},[1082,11778,1271],{"class":1190},[1082,11780,2206],{"class":1137},[1082,11782,11783],{"class":1137}," {})\n",[1082,11785,11786],{"class":1084,"line":6890},[1082,11787,2775],{"class":1099},[1082,11789,11790,11792],{"class":1084,"line":6895},[1082,11791,5304],{"class":1137},[1082,11793,11581],{"class":5307},[1082,11795,11796,11798,11801,11803,11805],{"class":1084,"line":9311},[1082,11797,3113],{"class":2021},[1082,11799,11800],{"class":2723}," upload_config",[1082,11802,1145],{"class":1137},[1082,11804,3122],{"class":3121},[1082,11806,2733],{"class":1137},[1082,11808,11809,11811,11814],{"class":1084,"line":9326},[1082,11810,11599],{"class":3614},[1082,11812,11813],{"class":3618},"File upload configuration",[1082,11815,3622],{"class":3614},[1082,11817,11818,11820],{"class":1084,"line":9331},[1082,11819,3179],{"class":1095},[1082,11821,1589],{"class":1137},[1082,11823,11824,11826,11829,11831,11833,11835,11837,11839,11841,11843,11845,11847,11849,11851,11853,11855,11857,11859,11861,11863],{"class":1084,"line":9337},[1082,11825,1595],{"class":1190},[1082,11827,11828],{"class":1194},"max_size",[1082,11830,1271],{"class":1190},[1082,11832,1517],{"class":1137},[1082,11834,2858],{"class":2296},[1082,11836,1145],{"class":1137},[1082,11838,3122],{"class":1133},[1082,11840,1165],{"class":1137},[1082,11842,2061],{"class":1161},[1082,11844,2206],{"class":1137},[1082,11846,1191],{"class":1190},[1082,11848,9693],{"class":1194},[1082,11850,1271],{"class":1190},[1082,11852,2206],{"class":1137},[1082,11854,3393],{"class":2597},[1082,11856,9700],{"class":1546},[1082,11858,9703],{"class":2597},[1082,11860,9700],{"class":1546},[1082,11862,9703],{"class":2597},[1082,11864,2964],{"class":1137},[1082,11866,11867,11869,11872,11874,11876,11878,11880,11882,11884,11886,11888,11890,11892,11894,11896],{"class":1084,"line":9347},[1082,11868,1595],{"class":1190},[1082,11870,11871],{"class":1194},"allowed_types",[1082,11873,1271],{"class":1190},[1082,11875,1517],{"class":1137},[1082,11877,2858],{"class":2296},[1082,11879,1145],{"class":1137},[1082,11881,3122],{"class":1133},[1082,11883,1165],{"class":1137},[1082,11885,2061],{"class":1161},[1082,11887,2206],{"class":1137},[1082,11889,1191],{"class":1190},[1082,11891,9715],{"class":1194},[1082,11893,1271],{"class":1190},[1082,11895,2206],{"class":1137},[1082,11897,7210],{"class":1137},[1082,11899,11900,11902,11905,11907,11909,11911,11913,11915,11917,11919,11921,11923,11925,11927,11929,11932],{"class":1084,"line":9361},[1082,11901,1595],{"class":1190},[1082,11903,11904],{"class":1194},"max_files",[1082,11906,1271],{"class":1190},[1082,11908,1517],{"class":1137},[1082,11910,2858],{"class":2296},[1082,11912,1145],{"class":1137},[1082,11914,3122],{"class":1133},[1082,11916,1165],{"class":1137},[1082,11918,2061],{"class":1161},[1082,11920,2206],{"class":1137},[1082,11922,1191],{"class":1190},[1082,11924,9787],{"class":1194},[1082,11926,1271],{"class":1190},[1082,11928,2206],{"class":1137},[1082,11930,11931],{"class":2597}," 5",[1082,11933,2964],{"class":1137},[1082,11935,11936],{"class":1084,"line":9373},[1082,11937,4252],{"class":1137},[1082,11939,11940],{"class":1084,"line":9379},[1082,11941,2775],{"class":1099},[1082,11943,11944,11946,11949,11951,11953,11955,11958],{"class":1084,"line":9393},[1082,11945,3113],{"class":2021},[1082,11947,11948],{"class":2723}," is_feature_enabled",[1082,11950,1145],{"class":1137},[1082,11952,3122],{"class":3121},[1082,11954,2206],{"class":1137},[1082,11956,11957],{"class":2729}," feature_name",[1082,11959,2733],{"class":1137},[1082,11961,11962,11964,11967],{"class":1084,"line":9405},[1082,11963,11599],{"class":3614},[1082,11965,11966],{"class":3618},"Check if a feature is enabled",[1082,11968,3622],{"class":3614},[1082,11970,11971,11973,11975,11977,11980,11982,11984,11986,11989,11991,11993],{"class":1084,"line":9410},[1082,11972,3179],{"class":1095},[1082,11974,3132],{"class":1133},[1082,11976,1165],{"class":1137},[1082,11978,11979],{"class":1161},"features",[1082,11981,1165],{"class":1137},[1082,11983,10894],{"class":1141},[1082,11985,1145],{"class":1137},[1082,11987,11988],{"class":1141},"feature_name",[1082,11990,2206],{"class":1137},[1082,11992,6696],{"class":1220},[1082,11994,2216],{"class":1137},[1082,11996,11997],{"class":1084,"line":9431},[1082,11998,1121],{"emptyLinePlaceholder":1120},[1082,12000,12001],{"class":1084,"line":9448},[1082,12002,12003],{"class":1088},"# Usage in views\n",[1082,12005,12007,12009,12011,12013,12015,12017],{"class":1084,"line":12006},114,[1082,12008,1106],{"class":1095},[1082,12010,2161],{"class":1099},[1082,12012,1165],{"class":1137},[1082,12014,2166],{"class":1099},[1082,12016,1096],{"class":1095},[1082,12018,2171],{"class":1099},[1082,12020,12022,12025,12027,12029,12031,12033],{"class":1084,"line":12021},115,[1082,12023,12024],{"class":1099},"custom_settings ",[1082,12026,2029],{"class":1137},[1082,12028,11523],{"class":1141},[1082,12030,1145],{"class":1137},[1082,12032,2061],{"class":1141},[1082,12034,2216],{"class":1137},[1082,12036,12038],{"class":1084,"line":12037},116,[1082,12039,1121],{"emptyLinePlaceholder":1120},[1082,12041,12043,12045,12047,12049,12051],{"class":1084,"line":12042},117,[1082,12044,2720],{"class":2021},[1082,12046,2724],{"class":2723},[1082,12048,1145],{"class":1137},[1082,12050,2730],{"class":2729},[1082,12052,2733],{"class":1137},[1082,12054,12056,12058,12061,12063,12066,12068,12070,12072,12074],{"class":1084,"line":12055},118,[1082,12057,2743],{"class":1095},[1082,12059,12060],{"class":1099}," custom_settings",[1082,12062,1165],{"class":1137},[1082,12064,12065],{"class":1141},"is_feature_enabled",[1082,12067,1145],{"class":1137},[1082,12069,1271],{"class":1190},[1082,12071,9592],{"class":1194},[1082,12073,1271],{"class":1190},[1082,12075,2733],{"class":1137},[1082,12077,12079],{"class":1084,"line":12078},119,[1082,12080,12081],{"class":1088},"        # Handle registration\n",[1082,12083,12085],{"class":1084,"line":12084},120,[1082,12086,5332],{"class":1095},[1030,12088,12090],{"id":12089},"using-settings-without-setting-django_settings_module","Using Settings Without Setting DJANGO_SETTINGS_MODULE",[1035,12092,12094],{"id":12093},"manual-settings-configuration","Manual Settings Configuration",[1072,12096,12098],{"className":1074,"code":12097,"language":1076,"meta":1077,"style":1077},"# standalone_django.py - Using Django without DJANGO_SETTINGS_MODULE\nimport django\nfrom django.conf import settings\n\n# Configure settings manually\nsettings.configure(\n    DEBUG=True,\n    SECRET_KEY='temporary-key-for-testing',\n    DATABASES={\n        'default': {\n            'ENGINE': 'django.db.backends.sqlite3',\n            'NAME': ':memory:',\n        }\n    },\n    INSTALLED_APPS=[\n        'django.contrib.auth',\n        'django.contrib.contenttypes',\n        'myapp',\n    ],\n    USE_TZ=True,\n)\n\n# Setup Django\ndjango.setup()\n\n# Now you can use Django\nfrom django.contrib.auth.models import User\nfrom myapp.models import MyModel\n\ndef create_test_data():\n    \"\"\"Create test data without a full Django project\"\"\"\n    user = User.objects.create_user('testuser', 'test@example.com', 'password')\n    return user\n\nif __name__ == '__main__':\n    create_test_data()\n",[1079,12099,12100,12105,12111,12125,12129,12134,12144,12154,12169,12175,12187,12205,12223,12227,12231,12238,12248,12258,12268,12272,12283,12287,12291,12296,12306,12310,12314,12339,12353,12357,12366,12375,12422,12429,12433,12451],{"__ignoreMap":1077},[1082,12101,12102],{"class":1084,"line":1085},[1082,12103,12104],{"class":1088},"# standalone_django.py - Using Django without DJANGO_SETTINGS_MODULE\n",[1082,12106,12107,12109],{"class":1084,"line":1092},[1082,12108,1096],{"class":1095},[1082,12110,2154],{"class":1099},[1082,12112,12113,12115,12117,12119,12121,12123],{"class":1084,"line":1103},[1082,12114,1106],{"class":1095},[1082,12116,2161],{"class":1099},[1082,12118,1165],{"class":1137},[1082,12120,2166],{"class":1099},[1082,12122,1096],{"class":1095},[1082,12124,2171],{"class":1099},[1082,12126,12127],{"class":1084,"line":1117},[1082,12128,1121],{"emptyLinePlaceholder":1120},[1082,12130,12131],{"class":1084,"line":1124},[1082,12132,12133],{"class":1088},"# Configure settings manually\n",[1082,12135,12136,12138,12140,12142],{"class":1084,"line":1130},[1082,12137,2061],{"class":1099},[1082,12139,1165],{"class":1137},[1082,12141,5085],{"class":1141},[1082,12143,3272],{"class":1137},[1082,12145,12146,12148,12150,12152],{"class":1084,"line":1171},[1082,12147,4010],{"class":3062},[1082,12149,2029],{"class":1137},[1082,12151,5097],{"class":1220},[1082,12153,1274],{"class":1137},[1082,12155,12156,12158,12160,12162,12165,12167],{"class":1084,"line":1176},[1082,12157,5277],{"class":3062},[1082,12159,2029],{"class":1137},[1082,12161,1271],{"class":1190},[1082,12163,12164],{"class":1194},"temporary-key-for-testing",[1082,12166,1271],{"class":1190},[1082,12168,1274],{"class":1137},[1082,12170,12171,12173],{"class":1084,"line":1182},[1082,12172,4055],{"class":3062},[1082,12174,5107],{"class":1137},[1082,12176,12177,12179,12181,12183,12185],{"class":1084,"line":1201},[1082,12178,1509],{"class":1190},[1082,12180,1725],{"class":1194},[1082,12182,1271],{"class":1190},[1082,12184,1517],{"class":1137},[1082,12186,1589],{"class":1137},[1082,12188,12189,12191,12193,12195,12197,12199,12201,12203],{"class":1084,"line":1206},[1082,12190,1595],{"class":1190},[1082,12192,1739],{"class":1194},[1082,12194,1271],{"class":1190},[1082,12196,1517],{"class":1137},[1082,12198,1191],{"class":1190},[1082,12200,1748],{"class":1194},[1082,12202,1271],{"class":1190},[1082,12204,1274],{"class":1137},[1082,12206,12207,12209,12211,12213,12215,12217,12219,12221],{"class":1084,"line":1212},[1082,12208,1595],{"class":1190},[1082,12210,1760],{"class":1194},[1082,12212,1271],{"class":1190},[1082,12214,1517],{"class":1137},[1082,12216,1191],{"class":1190},[1082,12218,5153],{"class":1194},[1082,12220,1271],{"class":1190},[1082,12222,1274],{"class":1137},[1082,12224,12225],{"class":1084,"line":1224},[1082,12226,4252],{"class":1137},[1082,12228,12229],{"class":1084,"line":1229},[1082,12230,1671],{"class":1137},[1082,12232,12233,12236],{"class":1084,"line":1240},[1082,12234,12235],{"class":3062},"    INSTALLED_APPS",[1082,12237,5175],{"class":1137},[1082,12239,12240,12242,12244,12246],{"class":1084,"line":1245},[1082,12241,1509],{"class":1190},[1082,12243,1282],{"class":1194},[1082,12245,1271],{"class":1190},[1082,12247,1274],{"class":1137},[1082,12249,12250,12252,12254,12256],{"class":1084,"line":1251},[1082,12251,1509],{"class":1190},[1082,12253,1294],{"class":1194},[1082,12255,1271],{"class":1190},[1082,12257,1274],{"class":1137},[1082,12259,12260,12262,12264,12266],{"class":1084,"line":1262},[1082,12261,1509],{"class":1190},[1082,12263,1348],{"class":1194},[1082,12265,1271],{"class":1190},[1082,12267,1274],{"class":1137},[1082,12269,12270],{"class":1084,"line":1277},[1082,12271,9376],{"class":1137},[1082,12273,12274,12277,12279,12281],{"class":1084,"line":1289},[1082,12275,12276],{"class":3062},"    USE_TZ",[1082,12278,2029],{"class":1137},[1082,12280,5097],{"class":1220},[1082,12282,1274],{"class":1137},[1082,12284,12285],{"class":1084,"line":1301},[1082,12286,2216],{"class":1137},[1082,12288,12289],{"class":1084,"line":1313},[1082,12290,1121],{"emptyLinePlaceholder":1120},[1082,12292,12293],{"class":1084,"line":1325},[1082,12294,12295],{"class":1088},"# Setup Django\n",[1082,12297,12298,12300,12302,12304],{"class":1084,"line":1337},[1082,12299,2221],{"class":1099},[1082,12301,1165],{"class":1137},[1082,12303,2226],{"class":1141},[1082,12305,2229],{"class":1137},[1082,12307,12308],{"class":1084,"line":1343},[1082,12309,1121],{"emptyLinePlaceholder":1120},[1082,12311,12312],{"class":1084,"line":1355},[1082,12313,2238],{"class":1088},[1082,12315,12316,12318,12320,12322,12325,12327,12330,12332,12334,12336],{"class":1084,"line":1361},[1082,12317,1106],{"class":1095},[1082,12319,2161],{"class":1099},[1082,12321,1165],{"class":1137},[1082,12323,12324],{"class":1099},"contrib",[1082,12326,1165],{"class":1137},[1082,12328,12329],{"class":1099},"auth",[1082,12331,1165],{"class":1137},[1082,12333,2250],{"class":1099},[1082,12335,1096],{"class":1095},[1082,12337,12338],{"class":1099}," User\n",[1082,12340,12341,12343,12345,12347,12349,12351],{"class":1084,"line":1366},[1082,12342,1106],{"class":1095},[1082,12344,2245],{"class":1099},[1082,12346,1165],{"class":1137},[1082,12348,2250],{"class":1099},[1082,12350,1096],{"class":1095},[1082,12352,2255],{"class":1099},[1082,12354,12355],{"class":1084,"line":1376},[1082,12356,1121],{"emptyLinePlaceholder":1120},[1082,12358,12359,12361,12364],{"class":1084,"line":1388},[1082,12360,2720],{"class":2021},[1082,12362,12363],{"class":2723}," create_test_data",[1082,12365,5041],{"class":1137},[1082,12367,12368,12370,12373],{"class":1084,"line":1400},[1082,12369,3615],{"class":3614},[1082,12371,12372],{"class":3618},"Create test data without a full Django project",[1082,12374,3622],{"class":3614},[1082,12376,12377,12379,12381,12384,12386,12389,12391,12394,12396,12398,12401,12403,12405,12407,12410,12412,12414,12416,12418,12420],{"class":1084,"line":1412},[1082,12378,3038],{"class":1099},[1082,12380,2029],{"class":1137},[1082,12382,12383],{"class":1099}," User",[1082,12385,1165],{"class":1137},[1082,12387,12388],{"class":1161},"objects",[1082,12390,1165],{"class":1137},[1082,12392,12393],{"class":1141},"create_user",[1082,12395,1145],{"class":1137},[1082,12397,1271],{"class":1190},[1082,12399,12400],{"class":1194},"testuser",[1082,12402,1271],{"class":1190},[1082,12404,2206],{"class":1137},[1082,12406,1191],{"class":1190},[1082,12408,12409],{"class":1194},"test@example.com",[1082,12411,1271],{"class":1190},[1082,12413,2206],{"class":1137},[1082,12415,1191],{"class":1190},[1082,12417,7911],{"class":1194},[1082,12419,1271],{"class":1190},[1082,12421,2216],{"class":1137},[1082,12423,12424,12426],{"class":1084,"line":1424},[1082,12425,2887],{"class":1095},[1082,12427,12428],{"class":1099}," user\n",[1082,12430,12431],{"class":1084,"line":1436},[1082,12432,1121],{"emptyLinePlaceholder":1120},[1082,12434,12435,12437,12440,12442,12444,12447,12449],{"class":1084,"line":1448},[1082,12436,3990],{"class":1095},[1082,12438,12439],{"class":1148}," __name__",[1082,12441,3996],{"class":1546},[1082,12443,1191],{"class":1190},[1082,12445,12446],{"class":1194},"__main__",[1082,12448,1271],{"class":1190},[1082,12450,2753],{"class":1137},[1082,12452,12453,12456],{"class":1084,"line":1460},[1082,12454,12455],{"class":1141},"    create_test_data",[1082,12457,2229],{"class":1137},[1035,12459,12461],{"id":12460},"testing-configuration","Testing Configuration",[1072,12463,12465],{"className":1074,"code":12464,"language":1076,"meta":1077,"style":1077},"# test_settings.py - Minimal settings for testing\nimport tempfile\nfrom pathlib import Path\n\n# Use temporary directory for testing\nTEMP_DIR = Path(tempfile.mkdtemp())\n\n# Minimal settings for testing\nSETTINGS = {\n    'DEBUG': True,\n    'SECRET_KEY': 'test-secret-key-not-for-production',\n    'DATABASES': {\n        'default': {\n            'ENGINE': 'django.db.backends.sqlite3',\n            'NAME': ':memory:',\n        }\n    },\n    'INSTALLED_APPS': [\n        'django.contrib.auth',\n        'django.contrib.contenttypes',\n        'django.contrib.sessions',\n        'django.contrib.messages',\n        'myapp',\n    ],\n    'MIDDLEWARE': [\n        'django.middleware.security.SecurityMiddleware',\n        'django.contrib.sessions.middleware.SessionMiddleware',\n        'django.middleware.common.CommonMiddleware',\n        'django.middleware.csrf.CsrfViewMiddleware',\n        'django.contrib.auth.middleware.AuthenticationMiddleware',\n        'django.contrib.messages.middleware.MessageMiddleware',\n    ],\n    'ROOT_URLCONF': 'myapp.urls',\n    'TEMPLATES': [\n        {\n            'BACKEND': 'django.template.backends.django.DjangoTemplates',\n            'DIRS': [TEMP_DIR / 'templates'],\n            'APP_DIRS': True,\n            'OPTIONS': {\n                'context_processors': [\n                    'django.template.context_processors.debug',\n                    'django.template.context_processors.request',\n                    'django.contrib.auth.context_processors.auth',\n                    'django.contrib.messages.context_processors.messages',\n                ],\n            },\n        },\n    ],\n    'STATIC_URL': '/static/',\n    'STATIC_ROOT': TEMP_DIR / 'static',\n    'MEDIA_URL': '/media/',\n    'MEDIA_ROOT': TEMP_DIR / 'media',\n    'USE_TZ': True,\n    'DEFAULT_AUTO_FIELD': 'django.db.models.BigAutoField',\n}\n\n# Configure Django\nfrom django.conf import settings\nimport django\n\nif not settings.configured:\n    settings.configure(**SETTINGS)\n    django.setup()\n",[1079,12466,12467,12472,12479,12489,12493,12498,12520,12524,12529,12538,12552,12571,12583,12595,12613,12631,12635,12639,12651,12661,12671,12681,12691,12701,12705,12717,12727,12737,12747,12757,12767,12777,12781,12800,12812,12817,12835,12859,12873,12885,12897,12907,12917,12927,12937,12942,12946,12950,12954,12972,12995,13013,13035,13049,13067,13071,13075,13080,13094,13100,13104,13118,13136],{"__ignoreMap":1077},[1082,12468,12469],{"class":1084,"line":1085},[1082,12470,12471],{"class":1088},"# test_settings.py - Minimal settings for testing\n",[1082,12473,12474,12476],{"class":1084,"line":1092},[1082,12475,1096],{"class":1095},[1082,12477,12478],{"class":1099}," tempfile\n",[1082,12480,12481,12483,12485,12487],{"class":1084,"line":1103},[1082,12482,1106],{"class":1095},[1082,12484,1109],{"class":1099},[1082,12486,1096],{"class":1095},[1082,12488,1114],{"class":1099},[1082,12490,12491],{"class":1084,"line":1117},[1082,12492,1121],{"emptyLinePlaceholder":1120},[1082,12494,12495],{"class":1084,"line":1124},[1082,12496,12497],{"class":1088},"# Use temporary directory for testing\n",[1082,12499,12500,12503,12505,12507,12509,12512,12514,12517],{"class":1084,"line":1130},[1082,12501,12502],{"class":1133},"TEMP_DIR",[1082,12504,1138],{"class":1137},[1082,12506,1142],{"class":1141},[1082,12508,1145],{"class":1137},[1082,12510,12511],{"class":1141},"tempfile",[1082,12513,1165],{"class":1137},[1082,12515,12516],{"class":1141},"mkdtemp",[1082,12518,12519],{"class":1137},"())\n",[1082,12521,12522],{"class":1084,"line":1171},[1082,12523,1121],{"emptyLinePlaceholder":1120},[1082,12525,12526],{"class":1084,"line":1176},[1082,12527,12528],{"class":1088},"# Minimal settings for testing\n",[1082,12530,12531,12534,12536],{"class":1084,"line":1182},[1082,12532,12533],{"class":1133},"SETTINGS",[1082,12535,1138],{"class":1137},[1082,12537,1589],{"class":1137},[1082,12539,12540,12542,12544,12546,12548,12550],{"class":1084,"line":1201},[1082,12541,1265],{"class":1190},[1082,12543,1215],{"class":1194},[1082,12545,1271],{"class":1190},[1082,12547,1517],{"class":1137},[1082,12549,1572],{"class":1220},[1082,12551,1274],{"class":1137},[1082,12553,12554,12556,12558,12560,12562,12564,12567,12569],{"class":1084,"line":1206},[1082,12555,1265],{"class":1190},[1082,12557,1185],{"class":1194},[1082,12559,1271],{"class":1190},[1082,12561,1517],{"class":1137},[1082,12563,1191],{"class":1190},[1082,12565,12566],{"class":1194},"test-secret-key-not-for-production",[1082,12568,1271],{"class":1190},[1082,12570,1274],{"class":1137},[1082,12572,12573,12575,12577,12579,12581],{"class":1084,"line":1212},[1082,12574,1265],{"class":1190},[1082,12576,1713],{"class":1194},[1082,12578,1271],{"class":1190},[1082,12580,1517],{"class":1137},[1082,12582,1589],{"class":1137},[1082,12584,12585,12587,12589,12591,12593],{"class":1084,"line":1224},[1082,12586,1509],{"class":1190},[1082,12588,1725],{"class":1194},[1082,12590,1271],{"class":1190},[1082,12592,1517],{"class":1137},[1082,12594,1589],{"class":1137},[1082,12596,12597,12599,12601,12603,12605,12607,12609,12611],{"class":1084,"line":1229},[1082,12598,1595],{"class":1190},[1082,12600,1739],{"class":1194},[1082,12602,1271],{"class":1190},[1082,12604,1517],{"class":1137},[1082,12606,1191],{"class":1190},[1082,12608,1748],{"class":1194},[1082,12610,1271],{"class":1190},[1082,12612,1274],{"class":1137},[1082,12614,12615,12617,12619,12621,12623,12625,12627,12629],{"class":1084,"line":1240},[1082,12616,1595],{"class":1190},[1082,12618,1760],{"class":1194},[1082,12620,1271],{"class":1190},[1082,12622,1517],{"class":1137},[1082,12624,1191],{"class":1190},[1082,12626,5153],{"class":1194},[1082,12628,1271],{"class":1190},[1082,12630,1274],{"class":1137},[1082,12632,12633],{"class":1084,"line":1245},[1082,12634,4252],{"class":1137},[1082,12636,12637],{"class":1084,"line":1251},[1082,12638,1671],{"class":1137},[1082,12640,12641,12643,12645,12647,12649],{"class":1084,"line":1262},[1082,12642,1265],{"class":1190},[1082,12644,1254],{"class":1194},[1082,12646,1271],{"class":1190},[1082,12648,1517],{"class":1137},[1082,12650,1259],{"class":1137},[1082,12652,12653,12655,12657,12659],{"class":1084,"line":1277},[1082,12654,1509],{"class":1190},[1082,12656,1282],{"class":1194},[1082,12658,1271],{"class":1190},[1082,12660,1274],{"class":1137},[1082,12662,12663,12665,12667,12669],{"class":1084,"line":1289},[1082,12664,1509],{"class":1190},[1082,12666,1294],{"class":1194},[1082,12668,1271],{"class":1190},[1082,12670,1274],{"class":1137},[1082,12672,12673,12675,12677,12679],{"class":1084,"line":1301},[1082,12674,1509],{"class":1190},[1082,12676,1306],{"class":1194},[1082,12678,1271],{"class":1190},[1082,12680,1274],{"class":1137},[1082,12682,12683,12685,12687,12689],{"class":1084,"line":1313},[1082,12684,1509],{"class":1190},[1082,12686,1318],{"class":1194},[1082,12688,1271],{"class":1190},[1082,12690,1274],{"class":1137},[1082,12692,12693,12695,12697,12699],{"class":1084,"line":1325},[1082,12694,1509],{"class":1190},[1082,12696,1348],{"class":1194},[1082,12698,1271],{"class":1190},[1082,12700,1274],{"class":1137},[1082,12702,12703],{"class":1084,"line":1337},[1082,12704,9376],{"class":1137},[1082,12706,12707,12709,12711,12713,12715],{"class":1084,"line":1343},[1082,12708,1265],{"class":1190},[1082,12710,1369],{"class":1194},[1082,12712,1271],{"class":1190},[1082,12714,1517],{"class":1137},[1082,12716,1259],{"class":1137},[1082,12718,12719,12721,12723,12725],{"class":1084,"line":1355},[1082,12720,1509],{"class":1190},[1082,12722,1381],{"class":1194},[1082,12724,1271],{"class":1190},[1082,12726,1274],{"class":1137},[1082,12728,12729,12731,12733,12735],{"class":1084,"line":1361},[1082,12730,1509],{"class":1190},[1082,12732,1393],{"class":1194},[1082,12734,1271],{"class":1190},[1082,12736,1274],{"class":1137},[1082,12738,12739,12741,12743,12745],{"class":1084,"line":1366},[1082,12740,1509],{"class":1190},[1082,12742,1405],{"class":1194},[1082,12744,1271],{"class":1190},[1082,12746,1274],{"class":1137},[1082,12748,12749,12751,12753,12755],{"class":1084,"line":1376},[1082,12750,1509],{"class":1190},[1082,12752,1417],{"class":1194},[1082,12754,1271],{"class":1190},[1082,12756,1274],{"class":1137},[1082,12758,12759,12761,12763,12765],{"class":1084,"line":1388},[1082,12760,1509],{"class":1190},[1082,12762,1429],{"class":1194},[1082,12764,1271],{"class":1190},[1082,12766,1274],{"class":1137},[1082,12768,12769,12771,12773,12775],{"class":1084,"line":1400},[1082,12770,1509],{"class":1190},[1082,12772,1441],{"class":1194},[1082,12774,1271],{"class":1190},[1082,12776,1274],{"class":1137},[1082,12778,12779],{"class":1084,"line":1412},[1082,12780,9376],{"class":1137},[1082,12782,12783,12785,12787,12789,12791,12793,12796,12798],{"class":1084,"line":1424},[1082,12784,1265],{"class":1190},[1082,12786,1473],{"class":1194},[1082,12788,1271],{"class":1190},[1082,12790,1517],{"class":1137},[1082,12792,1191],{"class":1190},[1082,12794,12795],{"class":1194},"myapp.urls",[1082,12797,1271],{"class":1190},[1082,12799,1274],{"class":1137},[1082,12801,12802,12804,12806,12808,12810],{"class":1084,"line":1436},[1082,12803,1265],{"class":1190},[1082,12805,1493],{"class":1194},[1082,12807,1271],{"class":1190},[1082,12809,1517],{"class":1137},[1082,12811,1259],{"class":1137},[1082,12813,12814],{"class":1084,"line":1448},[1082,12815,12816],{"class":1137},"        {\n",[1082,12818,12819,12821,12823,12825,12827,12829,12831,12833],{"class":1084,"line":1460},[1082,12820,1595],{"class":1190},[1082,12822,1512],{"class":1194},[1082,12824,1271],{"class":1190},[1082,12826,1517],{"class":1137},[1082,12828,1191],{"class":1190},[1082,12830,1522],{"class":1194},[1082,12832,1271],{"class":1190},[1082,12834,1274],{"class":1137},[1082,12836,12837,12839,12841,12843,12845,12847,12849,12851,12853,12855,12857],{"class":1084,"line":1465},[1082,12838,1595],{"class":1190},[1082,12840,1534],{"class":1194},[1082,12842,1271],{"class":1190},[1082,12844,1517],{"class":1137},[1082,12846,1541],{"class":1137},[1082,12848,12502],{"class":1133},[1082,12850,1547],{"class":1546},[1082,12852,1191],{"class":1190},[1082,12854,1552],{"class":1194},[1082,12856,1271],{"class":1190},[1082,12858,1557],{"class":1137},[1082,12860,12861,12863,12865,12867,12869,12871],{"class":1084,"line":1470},[1082,12862,1595],{"class":1190},[1082,12864,1565],{"class":1194},[1082,12866,1271],{"class":1190},[1082,12868,1517],{"class":1137},[1082,12870,1572],{"class":1220},[1082,12872,1274],{"class":1137},[1082,12874,12875,12877,12879,12881,12883],{"class":1084,"line":1485},[1082,12876,1595],{"class":1190},[1082,12878,1582],{"class":1194},[1082,12880,1271],{"class":1190},[1082,12882,1517],{"class":1137},[1082,12884,1589],{"class":1137},[1082,12886,12887,12889,12891,12893,12895],{"class":1084,"line":1490},[1082,12888,1610],{"class":1190},[1082,12890,1598],{"class":1194},[1082,12892,1271],{"class":1190},[1082,12894,1517],{"class":1137},[1082,12896,1259],{"class":1137},[1082,12898,12899,12901,12903,12905],{"class":1084,"line":1500},[1082,12900,5124],{"class":1190},[1082,12902,1613],{"class":1194},[1082,12904,1271],{"class":1190},[1082,12906,1274],{"class":1137},[1082,12908,12909,12911,12913,12915],{"class":1084,"line":1506},[1082,12910,5124],{"class":1190},[1082,12912,1625],{"class":1194},[1082,12914,1271],{"class":1190},[1082,12916,1274],{"class":1137},[1082,12918,12919,12921,12923,12925],{"class":1084,"line":1529},[1082,12920,5124],{"class":1190},[1082,12922,1637],{"class":1194},[1082,12924,1271],{"class":1190},[1082,12926,1274],{"class":1137},[1082,12928,12929,12931,12933,12935],{"class":1084,"line":1560},[1082,12930,5124],{"class":1190},[1082,12932,1649],{"class":1194},[1082,12934,1271],{"class":1190},[1082,12936,1274],{"class":1137},[1082,12938,12939],{"class":1084,"line":1577},[1082,12940,12941],{"class":1137},"                ],\n",[1082,12943,12944],{"class":1084,"line":1592},[1082,12945,5167],{"class":1137},[1082,12947,12948],{"class":1084,"line":1607},[1082,12949,1665],{"class":1137},[1082,12951,12952],{"class":1084,"line":1620},[1082,12953,9376],{"class":1137},[1082,12955,12956,12958,12960,12962,12964,12966,12968,12970],{"class":1084,"line":1632},[1082,12957,1265],{"class":1190},[1082,12959,1868],{"class":1194},[1082,12961,1271],{"class":1190},[1082,12963,1517],{"class":1137},[1082,12965,1191],{"class":1190},[1082,12967,1875],{"class":1194},[1082,12969,1271],{"class":1190},[1082,12971,1274],{"class":1137},[1082,12973,12974,12976,12978,12980,12982,12985,12987,12989,12991,12993],{"class":1084,"line":1644},[1082,12975,1265],{"class":1190},[1082,12977,1906],{"class":1194},[1082,12979,1271],{"class":1190},[1082,12981,1517],{"class":1137},[1082,12983,12984],{"class":1133}," TEMP_DIR",[1082,12986,1547],{"class":1546},[1082,12988,1191],{"class":1190},[1082,12990,1896],{"class":1194},[1082,12992,1271],{"class":1190},[1082,12994,1274],{"class":1137},[1082,12996,12997,12999,13001,13003,13005,13007,13009,13011],{"class":1084,"line":1656},[1082,12998,1265],{"class":1190},[1082,13000,1936],{"class":1194},[1082,13002,1271],{"class":1190},[1082,13004,1517],{"class":1137},[1082,13006,1191],{"class":1190},[1082,13008,1943],{"class":1194},[1082,13010,1271],{"class":1190},[1082,13012,1274],{"class":1137},[1082,13014,13015,13017,13019,13021,13023,13025,13027,13029,13031,13033],{"class":1084,"line":1662},[1082,13016,1265],{"class":1190},[1082,13018,1951],{"class":1194},[1082,13020,1271],{"class":1190},[1082,13022,1517],{"class":1137},[1082,13024,12984],{"class":1133},[1082,13026,1547],{"class":1546},[1082,13028,1191],{"class":1190},[1082,13030,1962],{"class":1194},[1082,13032,1271],{"class":1190},[1082,13034,1274],{"class":1137},[1082,13036,13037,13039,13041,13043,13045,13047],{"class":1084,"line":1668},[1082,13038,1265],{"class":1190},[1082,13040,1847],{"class":1194},[1082,13042,1271],{"class":1190},[1082,13044,1517],{"class":1137},[1082,13046,1572],{"class":1220},[1082,13048,1274],{"class":1137},[1082,13050,13051,13053,13055,13057,13059,13061,13063,13065],{"class":1084,"line":1674},[1082,13052,1265],{"class":1190},[1082,13054,1981],{"class":1194},[1082,13056,1271],{"class":1190},[1082,13058,1517],{"class":1137},[1082,13060,1191],{"class":1190},[1082,13062,1988],{"class":1194},[1082,13064,1271],{"class":1190},[1082,13066,1274],{"class":1137},[1082,13068,13069],{"class":1084,"line":1679},[1082,13070,1790],{"class":1137},[1082,13072,13073],{"class":1084,"line":1684},[1082,13074,1121],{"emptyLinePlaceholder":1120},[1082,13076,13077],{"class":1084,"line":1699},[1082,13078,13079],{"class":1088},"# Configure Django\n",[1082,13081,13082,13084,13086,13088,13090,13092],{"class":1084,"line":1704},[1082,13083,1106],{"class":1095},[1082,13085,2161],{"class":1099},[1082,13087,1165],{"class":1137},[1082,13089,2166],{"class":1099},[1082,13091,1096],{"class":1095},[1082,13093,2171],{"class":1099},[1082,13095,13096,13098],{"class":1084,"line":1710},[1082,13097,1096],{"class":1095},[1082,13099,2154],{"class":1099},[1082,13101,13102],{"class":1084,"line":1720},[1082,13103,1121],{"emptyLinePlaceholder":1120},[1082,13105,13106,13108,13110,13112,13114,13116],{"class":1084,"line":1734},[1082,13107,3990],{"class":1095},[1082,13109,5066],{"class":1546},[1082,13111,2746],{"class":1099},[1082,13113,1165],{"class":1137},[1082,13115,5073],{"class":1161},[1082,13117,2753],{"class":1137},[1082,13119,13120,13123,13125,13127,13129,13132,13134],{"class":1084,"line":1755},[1082,13121,13122],{"class":1099},"    settings",[1082,13124,1165],{"class":1137},[1082,13126,5085],{"class":1141},[1082,13128,1145],{"class":1137},[1082,13130,13131],{"class":1546},"**",[1082,13133,12533],{"class":7241},[1082,13135,2216],{"class":1137},[1082,13137,13138,13141,13143,13145],{"class":1084,"line":1781},[1082,13139,13140],{"class":1099},"    django",[1082,13142,1165],{"class":1137},[1082,13144,2226],{"class":1141},[1082,13146,2229],{"class":1137},[1035,13148,13150],{"id":13149},"script-configuration","Script Configuration",[1072,13152,13154],{"className":1074,"code":13153,"language":1076,"meta":1077,"style":1077},"# django_script.py - Standalone Django script\n#!/usr/bin/env python\n\"\"\"\nStandalone Django script that doesn't require DJANGO_SETTINGS_MODULE\n\"\"\"\nimport os\nimport sys\nimport django\nfrom django.conf import settings\n\ndef configure_django():\n    \"\"\"Configure Django for standalone use\"\"\"\n    \n    # Basic configuration\n    config = {\n        'DEBUG': True,\n        'SECRET_KEY': 'script-secret-key',\n        'DATABASES': {\n            'default': {\n                'ENGINE': 'django.db.backends.sqlite3',\n                'NAME': 'script_db.sqlite3',\n            }\n        },\n        'INSTALLED_APPS': [\n            'django.contrib.auth',\n            'django.contrib.contenttypes',\n            'myapp',\n        ],\n        'USE_TZ': True,\n    }\n    \n    # Configure settings if not already configured\n    if not settings.configured:\n        settings.configure(**config)\n        django.setup()\n\ndef main():\n    \"\"\"Main script function\"\"\"\n    configure_django()\n    \n    # Now you can use Django models and ORM\n    from django.contrib.auth.models import User\n    from myapp.models import MyModel\n    \n    # Create database tables\n    from django.core.management import execute_from_command_line\n    execute_from_command_line(['manage.py', 'migrate', '--run-syncdb'])\n    \n    # Your script logic here\n    users = User.objects.all()\n    print(f\"Found {users.count()} users\")\n    \n    # Create some data\n    if not User.objects.filter(username='admin').exists():\n        User.objects.create_superuser('admin', 'admin@example.com', 'password')\n        print(\"Created admin user\")\n\nif __name__ == '__main__':\n    main()\n",[1079,13155,13156,13161,13166,13170,13175,13179,13185,13192,13198,13212,13216,13225,13234,13238,13243,13252,13266,13285,13297,13309,13327,13346,13351,13355,13367,13377,13387,13397,13402,13416,13420,13424,13429,13443,13460,13471,13475,13484,13493,13500,13504,13509,13531,13545,13549,13554,13574,13609,13613,13618,13638,13669,13673,13678,13716,13757,13772,13776,13792],{"__ignoreMap":1077},[1082,13157,13158],{"class":1084,"line":1085},[1082,13159,13160],{"class":1088},"# django_script.py - Standalone Django script\n",[1082,13162,13163],{"class":1084,"line":1092},[1082,13164,13165],{"class":1088},"#!/usr/bin/env python\n",[1082,13167,13168],{"class":1084,"line":1103},[1082,13169,3622],{"class":3614},[1082,13171,13172],{"class":1084,"line":1117},[1082,13173,13174],{"class":3618},"Standalone Django script that doesn't require DJANGO_SETTINGS_MODULE\n",[1082,13176,13177],{"class":1084,"line":1124},[1082,13178,3622],{"class":3614},[1082,13180,13181,13183],{"class":1084,"line":1130},[1082,13182,1096],{"class":1095},[1082,13184,1100],{"class":1099},[1082,13186,13187,13189],{"class":1084,"line":1171},[1082,13188,1096],{"class":1095},[1082,13190,13191],{"class":1099}," sys\n",[1082,13193,13194,13196],{"class":1084,"line":1176},[1082,13195,1096],{"class":1095},[1082,13197,2154],{"class":1099},[1082,13199,13200,13202,13204,13206,13208,13210],{"class":1084,"line":1182},[1082,13201,1106],{"class":1095},[1082,13203,2161],{"class":1099},[1082,13205,1165],{"class":1137},[1082,13207,2166],{"class":1099},[1082,13209,1096],{"class":1095},[1082,13211,2171],{"class":1099},[1082,13213,13214],{"class":1084,"line":1201},[1082,13215,1121],{"emptyLinePlaceholder":1120},[1082,13217,13218,13220,13223],{"class":1084,"line":1206},[1082,13219,2720],{"class":2021},[1082,13221,13222],{"class":2723}," configure_django",[1082,13224,5041],{"class":1137},[1082,13226,13227,13229,13232],{"class":1084,"line":1212},[1082,13228,3615],{"class":3614},[1082,13230,13231],{"class":3618},"Configure Django for standalone use",[1082,13233,3622],{"class":3614},[1082,13235,13236],{"class":1084,"line":1224},[1082,13237,2775],{"class":1099},[1082,13239,13240],{"class":1084,"line":1229},[1082,13241,13242],{"class":1088},"    # Basic configuration\n",[1082,13244,13245,13248,13250],{"class":1084,"line":1240},[1082,13246,13247],{"class":1099},"    config ",[1082,13249,2029],{"class":1137},[1082,13251,1589],{"class":1137},[1082,13253,13254,13256,13258,13260,13262,13264],{"class":1084,"line":1245},[1082,13255,1509],{"class":1190},[1082,13257,1215],{"class":1194},[1082,13259,1271],{"class":1190},[1082,13261,1517],{"class":1137},[1082,13263,1572],{"class":1220},[1082,13265,1274],{"class":1137},[1082,13267,13268,13270,13272,13274,13276,13278,13281,13283],{"class":1084,"line":1251},[1082,13269,1509],{"class":1190},[1082,13271,1185],{"class":1194},[1082,13273,1271],{"class":1190},[1082,13275,1517],{"class":1137},[1082,13277,1191],{"class":1190},[1082,13279,13280],{"class":1194},"script-secret-key",[1082,13282,1271],{"class":1190},[1082,13284,1274],{"class":1137},[1082,13286,13287,13289,13291,13293,13295],{"class":1084,"line":1262},[1082,13288,1509],{"class":1190},[1082,13290,1713],{"class":1194},[1082,13292,1271],{"class":1190},[1082,13294,1517],{"class":1137},[1082,13296,1589],{"class":1137},[1082,13298,13299,13301,13303,13305,13307],{"class":1084,"line":1277},[1082,13300,1595],{"class":1190},[1082,13302,1725],{"class":1194},[1082,13304,1271],{"class":1190},[1082,13306,1517],{"class":1137},[1082,13308,1589],{"class":1137},[1082,13310,13311,13313,13315,13317,13319,13321,13323,13325],{"class":1084,"line":1289},[1082,13312,1610],{"class":1190},[1082,13314,1739],{"class":1194},[1082,13316,1271],{"class":1190},[1082,13318,1517],{"class":1137},[1082,13320,1191],{"class":1190},[1082,13322,1748],{"class":1194},[1082,13324,1271],{"class":1190},[1082,13326,1274],{"class":1137},[1082,13328,13329,13331,13333,13335,13337,13339,13342,13344],{"class":1084,"line":1301},[1082,13330,1610],{"class":1190},[1082,13332,1760],{"class":1194},[1082,13334,1271],{"class":1190},[1082,13336,1517],{"class":1137},[1082,13338,1191],{"class":1190},[1082,13340,13341],{"class":1194},"script_db.sqlite3",[1082,13343,1271],{"class":1190},[1082,13345,1274],{"class":1137},[1082,13347,13348],{"class":1084,"line":1313},[1082,13349,13350],{"class":1137},"            }\n",[1082,13352,13353],{"class":1084,"line":1325},[1082,13354,1665],{"class":1137},[1082,13356,13357,13359,13361,13363,13365],{"class":1084,"line":1337},[1082,13358,1509],{"class":1190},[1082,13360,1254],{"class":1194},[1082,13362,1271],{"class":1190},[1082,13364,1517],{"class":1137},[1082,13366,1259],{"class":1137},[1082,13368,13369,13371,13373,13375],{"class":1084,"line":1343},[1082,13370,1595],{"class":1190},[1082,13372,1282],{"class":1194},[1082,13374,1271],{"class":1190},[1082,13376,1274],{"class":1137},[1082,13378,13379,13381,13383,13385],{"class":1084,"line":1355},[1082,13380,1595],{"class":1190},[1082,13382,1294],{"class":1194},[1082,13384,1271],{"class":1190},[1082,13386,1274],{"class":1137},[1082,13388,13389,13391,13393,13395],{"class":1084,"line":1361},[1082,13390,1595],{"class":1190},[1082,13392,1348],{"class":1194},[1082,13394,1271],{"class":1190},[1082,13396,1274],{"class":1137},[1082,13398,13399],{"class":1084,"line":1366},[1082,13400,13401],{"class":1137},"        ],\n",[1082,13403,13404,13406,13408,13410,13412,13414],{"class":1084,"line":1376},[1082,13405,1509],{"class":1190},[1082,13407,1847],{"class":1194},[1082,13409,1271],{"class":1190},[1082,13411,1517],{"class":1137},[1082,13413,1572],{"class":1220},[1082,13415,1274],{"class":1137},[1082,13417,13418],{"class":1084,"line":1388},[1082,13419,1784],{"class":1137},[1082,13421,13422],{"class":1084,"line":1400},[1082,13423,2775],{"class":1099},[1082,13425,13426],{"class":1084,"line":1412},[1082,13427,13428],{"class":1088},"    # Configure settings if not already configured\n",[1082,13430,13431,13433,13435,13437,13439,13441],{"class":1084,"line":1424},[1082,13432,2743],{"class":1095},[1082,13434,5066],{"class":1546},[1082,13436,2746],{"class":1099},[1082,13438,1165],{"class":1137},[1082,13440,5073],{"class":1161},[1082,13442,2753],{"class":1137},[1082,13444,13445,13447,13449,13451,13453,13455,13458],{"class":1084,"line":1436},[1082,13446,5080],{"class":1099},[1082,13448,1165],{"class":1137},[1082,13450,5085],{"class":1141},[1082,13452,1145],{"class":1137},[1082,13454,13131],{"class":1546},[1082,13456,13457],{"class":1141},"config",[1082,13459,2216],{"class":1137},[1082,13461,13462,13465,13467,13469],{"class":1084,"line":1448},[1082,13463,13464],{"class":1099},"        django",[1082,13466,1165],{"class":1137},[1082,13468,2226],{"class":1141},[1082,13470,2229],{"class":1137},[1082,13472,13473],{"class":1084,"line":1460},[1082,13474,1121],{"emptyLinePlaceholder":1120},[1082,13476,13477,13479,13482],{"class":1084,"line":1465},[1082,13478,2720],{"class":2021},[1082,13480,13481],{"class":2723}," main",[1082,13483,5041],{"class":1137},[1082,13485,13486,13488,13491],{"class":1084,"line":1470},[1082,13487,3615],{"class":3614},[1082,13489,13490],{"class":3618},"Main script function",[1082,13492,3622],{"class":3614},[1082,13494,13495,13498],{"class":1084,"line":1485},[1082,13496,13497],{"class":1141},"    configure_django",[1082,13499,2229],{"class":1137},[1082,13501,13502],{"class":1084,"line":1490},[1082,13503,2775],{"class":1099},[1082,13505,13506],{"class":1084,"line":1500},[1082,13507,13508],{"class":1088},"    # Now you can use Django models and ORM\n",[1082,13510,13511,13513,13515,13517,13519,13521,13523,13525,13527,13529],{"class":1084,"line":1506},[1082,13512,10845],{"class":1095},[1082,13514,2161],{"class":1099},[1082,13516,1165],{"class":1137},[1082,13518,12324],{"class":1099},[1082,13520,1165],{"class":1137},[1082,13522,12329],{"class":1099},[1082,13524,1165],{"class":1137},[1082,13526,2250],{"class":1099},[1082,13528,1096],{"class":1095},[1082,13530,12338],{"class":1099},[1082,13532,13533,13535,13537,13539,13541,13543],{"class":1084,"line":1529},[1082,13534,10845],{"class":1095},[1082,13536,2245],{"class":1099},[1082,13538,1165],{"class":1137},[1082,13540,2250],{"class":1099},[1082,13542,1096],{"class":1095},[1082,13544,2255],{"class":1099},[1082,13546,13547],{"class":1084,"line":1560},[1082,13548,2775],{"class":1099},[1082,13550,13551],{"class":1084,"line":1577},[1082,13552,13553],{"class":1088},"    # Create database tables\n",[1082,13555,13556,13558,13560,13562,13564,13566,13569,13571],{"class":1084,"line":1592},[1082,13557,10845],{"class":1095},[1082,13559,2161],{"class":1099},[1082,13561,1165],{"class":1137},[1082,13563,10690],{"class":1099},[1082,13565,1165],{"class":1137},[1082,13567,13568],{"class":1099},"management ",[1082,13570,1096],{"class":1095},[1082,13572,13573],{"class":1099}," execute_from_command_line\n",[1082,13575,13576,13579,13582,13584,13587,13589,13591,13593,13596,13598,13600,13602,13605,13607],{"class":1084,"line":1607},[1082,13577,13578],{"class":1141},"    execute_from_command_line",[1082,13580,13581],{"class":1137},"([",[1082,13583,1271],{"class":1190},[1082,13585,13586],{"class":1194},"manage.py",[1082,13588,1271],{"class":1190},[1082,13590,2206],{"class":1137},[1082,13592,1191],{"class":1190},[1082,13594,13595],{"class":1194},"migrate",[1082,13597,1271],{"class":1190},[1082,13599,2206],{"class":1137},[1082,13601,1191],{"class":1190},[1082,13603,13604],{"class":1194},"--run-syncdb",[1082,13606,1271],{"class":1190},[1082,13608,4999],{"class":1137},[1082,13610,13611],{"class":1084,"line":1620},[1082,13612,2775],{"class":1099},[1082,13614,13615],{"class":1084,"line":1632},[1082,13616,13617],{"class":1088},"    # Your script logic here\n",[1082,13619,13620,13623,13625,13627,13629,13631,13633,13636],{"class":1084,"line":1644},[1082,13621,13622],{"class":1099},"    users ",[1082,13624,2029],{"class":1137},[1082,13626,12383],{"class":1099},[1082,13628,1165],{"class":1137},[1082,13630,12388],{"class":1161},[1082,13632,1165],{"class":1137},[1082,13634,13635],{"class":1141},"all",[1082,13637,2229],{"class":1137},[1082,13639,13640,13643,13645,13647,13650,13652,13655,13657,13660,13662,13664,13667],{"class":1084,"line":1656},[1082,13641,13642],{"class":2296},"    print",[1082,13644,1145],{"class":1137},[1082,13646,10817],{"class":2021},[1082,13648,13649],{"class":1194},"\"Found ",[1082,13651,3153],{"class":3152},[1082,13653,13654],{"class":1141},"users",[1082,13656,1165],{"class":1137},[1082,13658,13659],{"class":1141},"count",[1082,13661,4681],{"class":1137},[1082,13663,3171],{"class":3152},[1082,13665,13666],{"class":1194}," users\"",[1082,13668,2216],{"class":1137},[1082,13670,13671],{"class":1084,"line":1662},[1082,13672,2775],{"class":1099},[1082,13674,13675],{"class":1084,"line":1668},[1082,13676,13677],{"class":1088},"    # Create some data\n",[1082,13679,13680,13682,13684,13686,13688,13690,13692,13695,13697,13700,13702,13704,13707,13709,13711,13714],{"class":1084,"line":1674},[1082,13681,2743],{"class":1095},[1082,13683,5066],{"class":1546},[1082,13685,12383],{"class":1099},[1082,13687,1165],{"class":1137},[1082,13689,12388],{"class":1161},[1082,13691,1165],{"class":1137},[1082,13693,13694],{"class":1141},"filter",[1082,13696,1145],{"class":1137},[1082,13698,13699],{"class":3062},"username",[1082,13701,2029],{"class":1137},[1082,13703,1271],{"class":1190},[1082,13705,13706],{"class":1194},"admin",[1082,13708,1271],{"class":1190},[1082,13710,1152],{"class":1137},[1082,13712,13713],{"class":1141},"exists",[1082,13715,5041],{"class":1137},[1082,13717,13718,13721,13723,13725,13727,13730,13732,13734,13736,13738,13740,13742,13745,13747,13749,13751,13753,13755],{"class":1084,"line":1679},[1082,13719,13720],{"class":1099},"        User",[1082,13722,1165],{"class":1137},[1082,13724,12388],{"class":1161},[1082,13726,1165],{"class":1137},[1082,13728,13729],{"class":1141},"create_superuser",[1082,13731,1145],{"class":1137},[1082,13733,1271],{"class":1190},[1082,13735,13706],{"class":1194},[1082,13737,1271],{"class":1190},[1082,13739,2206],{"class":1137},[1082,13741,1191],{"class":1190},[1082,13743,13744],{"class":1194},"admin@example.com",[1082,13746,1271],{"class":1190},[1082,13748,2206],{"class":1137},[1082,13750,1191],{"class":1190},[1082,13752,7911],{"class":1194},[1082,13754,1271],{"class":1190},[1082,13756,2216],{"class":1137},[1082,13758,13759,13761,13763,13765,13768,13770],{"class":1084,"line":1684},[1082,13760,2758],{"class":2296},[1082,13762,1145],{"class":1137},[1082,13764,2763],{"class":1190},[1082,13766,13767],{"class":1194},"Created admin user",[1082,13769,2763],{"class":1190},[1082,13771,2216],{"class":1137},[1082,13773,13774],{"class":1084,"line":1699},[1082,13775,1121],{"emptyLinePlaceholder":1120},[1082,13777,13778,13780,13782,13784,13786,13788,13790],{"class":1084,"line":1704},[1082,13779,3990],{"class":1095},[1082,13781,12439],{"class":1148},[1082,13783,3996],{"class":1546},[1082,13785,1191],{"class":1190},[1082,13787,12446],{"class":1194},[1082,13789,1271],{"class":1190},[1082,13791,2753],{"class":1137},[1082,13793,13794,13797],{"class":1084,"line":1710},[1082,13795,13796],{"class":1141},"    main",[1082,13798,2229],{"class":1137},[1035,13800,13802],{"id":13801},"dynamic-settings-loading","Dynamic Settings Loading",[1072,13804,13806],{"className":1074,"code":13805,"language":1076,"meta":1077,"style":1077},"# dynamic_settings.py - Load settings from various sources\nimport os\nimport json\nimport yaml\nfrom django.conf import settings\nimport django\n\nclass DynamicSettingsLoader:\n    \"\"\"Load Django settings from various sources\"\"\"\n    \n    def __init__(self):\n        self.config = {}\n    \n    def load_from_file(self, file_path):\n        \"\"\"Load settings from JSON or YAML file\"\"\"\n        if file_path.endswith('.json'):\n            with open(file_path, 'r') as f:\n                self.config.update(json.load(f))\n        elif file_path.endswith(('.yml', '.yaml')):\n            with open(file_path, 'r') as f:\n                self.config.update(yaml.safe_load(f))\n        else:\n            raise ValueError(\"Unsupported file format\")\n    \n    def load_from_env(self, prefix='DJANGO_'):\n        \"\"\"Load settings from environment variables\"\"\"\n        for key, value in os.environ.items():\n            if key.startswith(prefix):\n                setting_name = key[len(prefix):]\n                \n                # Try to convert to appropriate type\n                if value.lower() in ('true', 'false'):\n                    value = value.lower() == 'true'\n                elif value.isdigit():\n                    value = int(value)\n                elif ',' in value:\n                    value = [item.strip() for item in value.split(',')]\n                \n                self.config[setting_name] = value\n    \n    def load_from_dict(self, config_dict):\n        \"\"\"Load settings from dictionary\"\"\"\n        self.config.update(config_dict)\n    \n    def configure_django(self):\n        \"\"\"Configure Django with loaded settings\"\"\"\n        if not settings.configured:\n            settings.configure(**self.config)\n            django.setup()\n\n# Usage example\ndef setup_django_from_config():\n    \"\"\"Setup Django from multiple configuration sources\"\"\"\n    loader = DynamicSettingsLoader()\n    \n    # Load base configuration\n    base_config = {\n        'DEBUG': True,\n        'SECRET_KEY': 'default-secret-key',\n        'DATABASES': {\n            'default': {\n                'ENGINE': 'django.db.backends.sqlite3',\n                'NAME': 'default.db',\n            }\n        },\n        'INSTALLED_APPS': [\n            'django.contrib.auth',\n            'django.contrib.contenttypes',\n        ],\n        'USE_TZ': True,\n    }\n    loader.load_from_dict(base_config)\n    \n    # Override with file configuration if exists\n    config_file = os.getenv('DJANGO_CONFIG_FILE')\n    if config_file and os.path.exists(config_file):\n        loader.load_from_file(config_file)\n    \n    # Override with environment variables\n    loader.load_from_env()\n    \n    # Configure Django\n    loader.configure_django()\n\nif __name__ == '__main__':\n    setup_django_from_config()\n    \n    # Now Django is configured and ready to use\n    from django.contrib.auth.models import User\n    print(\"Django configured successfully!\")\n",[1079,13807,13808,13813,13819,13826,13833,13847,13853,13857,13866,13875,13879,13891,13904,13908,13926,13935,13957,13988,14017,14050,14076,14104,14111,14128,14132,14159,14168,14196,14215,14236,14241,14246,14281,14304,14318,14334,14350,14393,14397,14418,14422,14440,14449,14468,14472,14484,14493,14507,14528,14539,14543,14548,14557,14566,14577,14581,14586,14595,14609,14628,14640,14652,14670,14689,14693,14697,14709,14719,14729,14733,14747,14751,14768,14772,14777,14801,14829,14845,14849,14854,14865,14869,14874,14885,14889,14905,14912,14916,14921,14943],{"__ignoreMap":1077},[1082,13809,13810],{"class":1084,"line":1085},[1082,13811,13812],{"class":1088},"# dynamic_settings.py - Load settings from various sources\n",[1082,13814,13815,13817],{"class":1084,"line":1092},[1082,13816,1096],{"class":1095},[1082,13818,1100],{"class":1099},[1082,13820,13821,13823],{"class":1084,"line":1103},[1082,13822,1096],{"class":1095},[1082,13824,13825],{"class":1099}," json\n",[1082,13827,13828,13830],{"class":1084,"line":1117},[1082,13829,1096],{"class":1095},[1082,13831,13832],{"class":1099}," yaml\n",[1082,13834,13835,13837,13839,13841,13843,13845],{"class":1084,"line":1124},[1082,13836,1106],{"class":1095},[1082,13838,2161],{"class":1099},[1082,13840,1165],{"class":1137},[1082,13842,2166],{"class":1099},[1082,13844,1096],{"class":1095},[1082,13846,2171],{"class":1099},[1082,13848,13849,13851],{"class":1084,"line":1130},[1082,13850,1096],{"class":1095},[1082,13852,2154],{"class":1099},[1082,13854,13855],{"class":1084,"line":1171},[1082,13856,1121],{"emptyLinePlaceholder":1120},[1082,13858,13859,13861,13864],{"class":1084,"line":1176},[1082,13860,3017],{"class":2021},[1082,13862,13863],{"class":3020}," DynamicSettingsLoader",[1082,13865,2753],{"class":1137},[1082,13867,13868,13870,13873],{"class":1084,"line":1182},[1082,13869,3615],{"class":3614},[1082,13871,13872],{"class":3618},"Load Django settings from various sources",[1082,13874,3622],{"class":3614},[1082,13876,13877],{"class":1084,"line":1201},[1082,13878,2775],{"class":1099},[1082,13880,13881,13883,13885,13887,13889],{"class":1084,"line":1206},[1082,13882,3113],{"class":2021},[1082,13884,11545],{"class":2296},[1082,13886,1145],{"class":1137},[1082,13888,3122],{"class":3121},[1082,13890,2733],{"class":1137},[1082,13892,13893,13895,13897,13899,13901],{"class":1084,"line":1212},[1082,13894,11561],{"class":1133},[1082,13896,1165],{"class":1137},[1082,13898,13457],{"class":1161},[1082,13900,1138],{"class":1137},[1082,13902,13903],{"class":1137}," {}\n",[1082,13905,13906],{"class":1084,"line":1224},[1082,13907,2775],{"class":1099},[1082,13909,13910,13912,13915,13917,13919,13921,13924],{"class":1084,"line":1229},[1082,13911,3113],{"class":2021},[1082,13913,13914],{"class":2723}," load_from_file",[1082,13916,1145],{"class":1137},[1082,13918,3122],{"class":3121},[1082,13920,2206],{"class":1137},[1082,13922,13923],{"class":2729}," file_path",[1082,13925,2733],{"class":1137},[1082,13927,13928,13930,13933],{"class":1084,"line":1240},[1082,13929,11599],{"class":3614},[1082,13931,13932],{"class":3618},"Load settings from JSON or YAML file",[1082,13934,3622],{"class":3614},[1082,13936,13937,13939,13941,13943,13946,13948,13950,13953,13955],{"class":1084,"line":1245},[1082,13938,3129],{"class":1095},[1082,13940,13923],{"class":1099},[1082,13942,1165],{"class":1137},[1082,13944,13945],{"class":1141},"endswith",[1082,13947,1145],{"class":1137},[1082,13949,1271],{"class":1190},[1082,13951,13952],{"class":1194},".json",[1082,13954,1271],{"class":1190},[1082,13956,2733],{"class":1137},[1082,13958,13959,13962,13965,13967,13970,13972,13974,13977,13979,13981,13984,13986],{"class":1084,"line":1251},[1082,13960,13961],{"class":1095},"            with",[1082,13963,13964],{"class":2296}," open",[1082,13966,1145],{"class":1137},[1082,13968,13969],{"class":1141},"file_path",[1082,13971,2206],{"class":1137},[1082,13973,1191],{"class":1190},[1082,13975,13976],{"class":1194},"r",[1082,13978,1271],{"class":1190},[1082,13980,2335],{"class":1137},[1082,13982,13983],{"class":1095}," as",[1082,13985,3147],{"class":1099},[1082,13987,2753],{"class":1137},[1082,13989,13990,13993,13995,13997,13999,14002,14004,14006,14008,14011,14013,14015],{"class":1084,"line":1262},[1082,13991,13992],{"class":1133},"                self",[1082,13994,1165],{"class":1137},[1082,13996,13457],{"class":1161},[1082,13998,1165],{"class":1137},[1082,14000,14001],{"class":1141},"update",[1082,14003,1145],{"class":1137},[1082,14005,9220],{"class":1141},[1082,14007,1165],{"class":1137},[1082,14009,14010],{"class":1141},"load",[1082,14012,1145],{"class":1137},[1082,14014,10817],{"class":1141},[1082,14016,2310],{"class":1137},[1082,14018,14019,14022,14024,14026,14028,14031,14033,14036,14038,14040,14042,14045,14047],{"class":1084,"line":1277},[1082,14020,14021],{"class":1095},"        elif",[1082,14023,13923],{"class":1099},[1082,14025,1165],{"class":1137},[1082,14027,13945],{"class":1141},[1082,14029,14030],{"class":1137},"((",[1082,14032,1271],{"class":1190},[1082,14034,14035],{"class":1194},".yml",[1082,14037,1271],{"class":1190},[1082,14039,2206],{"class":1137},[1082,14041,1191],{"class":1190},[1082,14043,14044],{"class":1194},".yaml",[1082,14046,1271],{"class":1190},[1082,14048,14049],{"class":1137},")):\n",[1082,14051,14052,14054,14056,14058,14060,14062,14064,14066,14068,14070,14072,14074],{"class":1084,"line":1289},[1082,14053,13961],{"class":1095},[1082,14055,13964],{"class":2296},[1082,14057,1145],{"class":1137},[1082,14059,13969],{"class":1141},[1082,14061,2206],{"class":1137},[1082,14063,1191],{"class":1190},[1082,14065,13976],{"class":1194},[1082,14067,1271],{"class":1190},[1082,14069,2335],{"class":1137},[1082,14071,13983],{"class":1095},[1082,14073,3147],{"class":1099},[1082,14075,2753],{"class":1137},[1082,14077,14078,14080,14082,14084,14086,14088,14090,14093,14095,14098,14100,14102],{"class":1084,"line":1301},[1082,14079,13992],{"class":1133},[1082,14081,1165],{"class":1137},[1082,14083,13457],{"class":1161},[1082,14085,1165],{"class":1137},[1082,14087,14001],{"class":1141},[1082,14089,1145],{"class":1137},[1082,14091,14092],{"class":1141},"yaml",[1082,14094,1165],{"class":1137},[1082,14096,14097],{"class":1141},"safe_load",[1082,14099,1145],{"class":1137},[1082,14101,10817],{"class":1141},[1082,14103,2310],{"class":1137},[1082,14105,14106,14109],{"class":1084,"line":1313},[1082,14107,14108],{"class":1095},"        else",[1082,14110,2753],{"class":1137},[1082,14112,14113,14115,14117,14119,14121,14124,14126],{"class":1084,"line":1325},[1082,14114,3426],{"class":1095},[1082,14116,5798],{"class":5307},[1082,14118,1145],{"class":1137},[1082,14120,2763],{"class":1190},[1082,14122,14123],{"class":1194},"Unsupported file format",[1082,14125,2763],{"class":1190},[1082,14127,2216],{"class":1137},[1082,14129,14130],{"class":1084,"line":1337},[1082,14131,2775],{"class":1099},[1082,14133,14134,14136,14139,14141,14143,14145,14148,14150,14152,14155,14157],{"class":1084,"line":1343},[1082,14135,3113],{"class":2021},[1082,14137,14138],{"class":2723}," load_from_env",[1082,14140,1145],{"class":1137},[1082,14142,3122],{"class":3121},[1082,14144,2206],{"class":1137},[1082,14146,14147],{"class":2729}," prefix",[1082,14149,2029],{"class":1546},[1082,14151,1271],{"class":1190},[1082,14153,14154],{"class":1194},"DJANGO_",[1082,14156,1271],{"class":1190},[1082,14158,2733],{"class":1137},[1082,14160,14161,14163,14166],{"class":1084,"line":1355},[1082,14162,11599],{"class":3614},[1082,14164,14165],{"class":3618},"Load settings from environment variables",[1082,14167,3622],{"class":3614},[1082,14169,14170,14173,14176,14178,14181,14183,14185,14187,14189,14191,14194],{"class":1084,"line":1361},[1082,14171,14172],{"class":1095},"        for",[1082,14174,14175],{"class":1099}," key",[1082,14177,2206],{"class":1137},[1082,14179,14180],{"class":1099}," value ",[1082,14182,10781],{"class":1095},[1082,14184,3956],{"class":1099},[1082,14186,1165],{"class":1137},[1082,14188,2190],{"class":1161},[1082,14190,1165],{"class":1137},[1082,14192,14193],{"class":1141},"items",[1082,14195,5041],{"class":1137},[1082,14197,14198,14201,14203,14205,14208,14210,14213],{"class":1084,"line":1366},[1082,14199,14200],{"class":1095},"            if",[1082,14202,14175],{"class":1099},[1082,14204,1165],{"class":1137},[1082,14206,14207],{"class":1141},"startswith",[1082,14209,1145],{"class":1137},[1082,14211,14212],{"class":1141},"prefix",[1082,14214,2733],{"class":1137},[1082,14216,14217,14220,14222,14224,14226,14229,14231,14233],{"class":1084,"line":1376},[1082,14218,14219],{"class":1099},"                setting_name ",[1082,14221,2029],{"class":1137},[1082,14223,14175],{"class":1099},[1082,14225,3357],{"class":1137},[1082,14227,14228],{"class":2296},"len",[1082,14230,1145],{"class":1137},[1082,14232,14212],{"class":1141},[1082,14234,14235],{"class":1137},"):]\n",[1082,14237,14238],{"class":1084,"line":1388},[1082,14239,14240],{"class":1099},"                \n",[1082,14242,14243],{"class":1084,"line":1400},[1082,14244,14245],{"class":1088},"                # Try to convert to appropriate type\n",[1082,14247,14248,14251,14254,14256,14258,14260,14263,14265,14267,14269,14271,14273,14275,14277,14279],{"class":1084,"line":1412},[1082,14249,14250],{"class":1095},"                if",[1082,14252,14253],{"class":1099}," value",[1082,14255,1165],{"class":1137},[1082,14257,4678],{"class":1141},[1082,14259,4681],{"class":1137},[1082,14261,14262],{"class":1546}," in",[1082,14264,6008],{"class":1137},[1082,14266,1271],{"class":1190},[1082,14268,4688],{"class":1194},[1082,14270,1271],{"class":1190},[1082,14272,2206],{"class":1137},[1082,14274,1191],{"class":1190},[1082,14276,4671],{"class":1194},[1082,14278,1271],{"class":1190},[1082,14280,2733],{"class":1137},[1082,14282,14283,14286,14288,14290,14292,14294,14296,14298,14300,14302],{"class":1084,"line":1424},[1082,14284,14285],{"class":1099},"                    value ",[1082,14287,2029],{"class":1137},[1082,14289,14253],{"class":1099},[1082,14291,1165],{"class":1137},[1082,14293,4678],{"class":1141},[1082,14295,4681],{"class":1137},[1082,14297,3996],{"class":1546},[1082,14299,1191],{"class":1190},[1082,14301,4688],{"class":1194},[1082,14303,1198],{"class":1190},[1082,14305,14306,14309,14311,14313,14316],{"class":1084,"line":1436},[1082,14307,14308],{"class":1095},"                elif",[1082,14310,14253],{"class":1099},[1082,14312,1165],{"class":1137},[1082,14314,14315],{"class":1141},"isdigit",[1082,14317,5041],{"class":1137},[1082,14319,14320,14322,14324,14327,14329,14332],{"class":1084,"line":1448},[1082,14321,14285],{"class":1099},[1082,14323,2029],{"class":1137},[1082,14325,14326],{"class":5307}," int",[1082,14328,1145],{"class":1137},[1082,14330,14331],{"class":1141},"value",[1082,14333,2216],{"class":1137},[1082,14335,14336,14338,14340,14342,14344,14346,14348],{"class":1084,"line":1460},[1082,14337,14308],{"class":1095},[1082,14339,1191],{"class":1190},[1082,14341,2206],{"class":1194},[1082,14343,1271],{"class":1190},[1082,14345,14262],{"class":1546},[1082,14347,14253],{"class":1099},[1082,14349,2753],{"class":1137},[1082,14351,14352,14354,14356,14358,14361,14363,14366,14368,14371,14374,14376,14378,14380,14382,14384,14386,14388,14390],{"class":1084,"line":1465},[1082,14353,14285],{"class":1099},[1082,14355,2029],{"class":1137},[1082,14357,1541],{"class":1137},[1082,14359,14360],{"class":1099},"item",[1082,14362,1165],{"class":1137},[1082,14364,14365],{"class":1141},"strip",[1082,14367,4681],{"class":1137},[1082,14369,14370],{"class":1095}," for",[1082,14372,14373],{"class":1099}," item ",[1082,14375,10781],{"class":1095},[1082,14377,14253],{"class":1099},[1082,14379,1165],{"class":1137},[1082,14381,5899],{"class":1141},[1082,14383,1145],{"class":1137},[1082,14385,1271],{"class":1190},[1082,14387,2206],{"class":1194},[1082,14389,1271],{"class":1190},[1082,14391,14392],{"class":1137},")]\n",[1082,14394,14395],{"class":1084,"line":1470},[1082,14396,14240],{"class":1099},[1082,14398,14399,14401,14403,14405,14407,14410,14413,14415],{"class":1084,"line":1485},[1082,14400,13992],{"class":1133},[1082,14402,1165],{"class":1137},[1082,14404,13457],{"class":1161},[1082,14406,3357],{"class":1137},[1082,14408,14409],{"class":1161},"setting_name",[1082,14411,14412],{"class":1137},"]",[1082,14414,1138],{"class":1137},[1082,14416,14417],{"class":1099}," value\n",[1082,14419,14420],{"class":1084,"line":1490},[1082,14421,2775],{"class":1099},[1082,14423,14424,14426,14429,14431,14433,14435,14438],{"class":1084,"line":1500},[1082,14425,3113],{"class":2021},[1082,14427,14428],{"class":2723}," load_from_dict",[1082,14430,1145],{"class":1137},[1082,14432,3122],{"class":3121},[1082,14434,2206],{"class":1137},[1082,14436,14437],{"class":2729}," config_dict",[1082,14439,2733],{"class":1137},[1082,14441,14442,14444,14447],{"class":1084,"line":1506},[1082,14443,11599],{"class":3614},[1082,14445,14446],{"class":3618},"Load settings from dictionary",[1082,14448,3622],{"class":3614},[1082,14450,14451,14453,14455,14457,14459,14461,14463,14466],{"class":1084,"line":1529},[1082,14452,11561],{"class":1133},[1082,14454,1165],{"class":1137},[1082,14456,13457],{"class":1161},[1082,14458,1165],{"class":1137},[1082,14460,14001],{"class":1141},[1082,14462,1145],{"class":1137},[1082,14464,14465],{"class":1141},"config_dict",[1082,14467,2216],{"class":1137},[1082,14469,14470],{"class":1084,"line":1560},[1082,14471,2775],{"class":1099},[1082,14473,14474,14476,14478,14480,14482],{"class":1084,"line":1577},[1082,14475,3113],{"class":2021},[1082,14477,13222],{"class":2723},[1082,14479,1145],{"class":1137},[1082,14481,3122],{"class":3121},[1082,14483,2733],{"class":1137},[1082,14485,14486,14488,14491],{"class":1084,"line":1592},[1082,14487,11599],{"class":3614},[1082,14489,14490],{"class":3618},"Configure Django with loaded settings",[1082,14492,3622],{"class":3614},[1082,14494,14495,14497,14499,14501,14503,14505],{"class":1084,"line":1607},[1082,14496,3129],{"class":1095},[1082,14498,5066],{"class":1546},[1082,14500,2746],{"class":1099},[1082,14502,1165],{"class":1137},[1082,14504,5073],{"class":1161},[1082,14506,2753],{"class":1137},[1082,14508,14509,14512,14514,14516,14518,14520,14522,14524,14526],{"class":1084,"line":1620},[1082,14510,14511],{"class":1099},"            settings",[1082,14513,1165],{"class":1137},[1082,14515,5085],{"class":1141},[1082,14517,1145],{"class":1137},[1082,14519,13131],{"class":1546},[1082,14521,3122],{"class":1133},[1082,14523,1165],{"class":1137},[1082,14525,13457],{"class":1161},[1082,14527,2216],{"class":1137},[1082,14529,14530,14533,14535,14537],{"class":1084,"line":1632},[1082,14531,14532],{"class":1099},"            django",[1082,14534,1165],{"class":1137},[1082,14536,2226],{"class":1141},[1082,14538,2229],{"class":1137},[1082,14540,14541],{"class":1084,"line":1644},[1082,14542,1121],{"emptyLinePlaceholder":1120},[1082,14544,14545],{"class":1084,"line":1656},[1082,14546,14547],{"class":1088},"# Usage example\n",[1082,14549,14550,14552,14555],{"class":1084,"line":1662},[1082,14551,2720],{"class":2021},[1082,14553,14554],{"class":2723}," setup_django_from_config",[1082,14556,5041],{"class":1137},[1082,14558,14559,14561,14564],{"class":1084,"line":1668},[1082,14560,3615],{"class":3614},[1082,14562,14563],{"class":3618},"Setup Django from multiple configuration sources",[1082,14565,3622],{"class":3614},[1082,14567,14568,14571,14573,14575],{"class":1084,"line":1674},[1082,14569,14570],{"class":1099},"    loader ",[1082,14572,2029],{"class":1137},[1082,14574,13863],{"class":1141},[1082,14576,2229],{"class":1137},[1082,14578,14579],{"class":1084,"line":1679},[1082,14580,2775],{"class":1099},[1082,14582,14583],{"class":1084,"line":1684},[1082,14584,14585],{"class":1088},"    # Load base configuration\n",[1082,14587,14588,14591,14593],{"class":1084,"line":1699},[1082,14589,14590],{"class":1099},"    base_config ",[1082,14592,2029],{"class":1137},[1082,14594,1589],{"class":1137},[1082,14596,14597,14599,14601,14603,14605,14607],{"class":1084,"line":1704},[1082,14598,1509],{"class":1190},[1082,14600,1215],{"class":1194},[1082,14602,1271],{"class":1190},[1082,14604,1517],{"class":1137},[1082,14606,1572],{"class":1220},[1082,14608,1274],{"class":1137},[1082,14610,14611,14613,14615,14617,14619,14621,14624,14626],{"class":1084,"line":1710},[1082,14612,1509],{"class":1190},[1082,14614,1185],{"class":1194},[1082,14616,1271],{"class":1190},[1082,14618,1517],{"class":1137},[1082,14620,1191],{"class":1190},[1082,14622,14623],{"class":1194},"default-secret-key",[1082,14625,1271],{"class":1190},[1082,14627,1274],{"class":1137},[1082,14629,14630,14632,14634,14636,14638],{"class":1084,"line":1720},[1082,14631,1509],{"class":1190},[1082,14633,1713],{"class":1194},[1082,14635,1271],{"class":1190},[1082,14637,1517],{"class":1137},[1082,14639,1589],{"class":1137},[1082,14641,14642,14644,14646,14648,14650],{"class":1084,"line":1734},[1082,14643,1595],{"class":1190},[1082,14645,1725],{"class":1194},[1082,14647,1271],{"class":1190},[1082,14649,1517],{"class":1137},[1082,14651,1589],{"class":1137},[1082,14653,14654,14656,14658,14660,14662,14664,14666,14668],{"class":1084,"line":1755},[1082,14655,1610],{"class":1190},[1082,14657,1739],{"class":1194},[1082,14659,1271],{"class":1190},[1082,14661,1517],{"class":1137},[1082,14663,1191],{"class":1190},[1082,14665,1748],{"class":1194},[1082,14667,1271],{"class":1190},[1082,14669,1274],{"class":1137},[1082,14671,14672,14674,14676,14678,14680,14682,14685,14687],{"class":1084,"line":1781},[1082,14673,1610],{"class":1190},[1082,14675,1760],{"class":1194},[1082,14677,1271],{"class":1190},[1082,14679,1517],{"class":1137},[1082,14681,1191],{"class":1190},[1082,14683,14684],{"class":1194},"default.db",[1082,14686,1271],{"class":1190},[1082,14688,1274],{"class":1137},[1082,14690,14691],{"class":1084,"line":1787},[1082,14692,13350],{"class":1137},[1082,14694,14695],{"class":1084,"line":1793},[1082,14696,1665],{"class":1137},[1082,14698,14699,14701,14703,14705,14707],{"class":1084,"line":1798},[1082,14700,1509],{"class":1190},[1082,14702,1254],{"class":1194},[1082,14704,1271],{"class":1190},[1082,14706,1517],{"class":1137},[1082,14708,1259],{"class":1137},[1082,14710,14711,14713,14715,14717],{"class":1084,"line":1804},[1082,14712,1595],{"class":1190},[1082,14714,1282],{"class":1194},[1082,14716,1271],{"class":1190},[1082,14718,1274],{"class":1137},[1082,14720,14721,14723,14725,14727],{"class":1084,"line":1819},[1082,14722,1595],{"class":1190},[1082,14724,1294],{"class":1194},[1082,14726,1271],{"class":1190},[1082,14728,1274],{"class":1137},[1082,14730,14731],{"class":1084,"line":1834},[1082,14732,13401],{"class":1137},[1082,14734,14735,14737,14739,14741,14743,14745],{"class":1084,"line":1844},[1082,14736,1509],{"class":1190},[1082,14738,1847],{"class":1194},[1082,14740,1271],{"class":1190},[1082,14742,1517],{"class":1137},[1082,14744,1572],{"class":1220},[1082,14746,1274],{"class":1137},[1082,14748,14749],{"class":1084,"line":1854},[1082,14750,1784],{"class":1137},[1082,14752,14753,14756,14758,14761,14763,14766],{"class":1084,"line":1859},[1082,14754,14755],{"class":1099},"    loader",[1082,14757,1165],{"class":1137},[1082,14759,14760],{"class":1141},"load_from_dict",[1082,14762,1145],{"class":1137},[1082,14764,14765],{"class":1141},"base_config",[1082,14767,2216],{"class":1137},[1082,14769,14770],{"class":1084,"line":1865},[1082,14771,2775],{"class":1099},[1082,14773,14774],{"class":1084,"line":1880},[1082,14775,14776],{"class":1088},"    # Override with file configuration if exists\n",[1082,14778,14779,14782,14784,14786,14788,14790,14792,14794,14797,14799],{"class":1084,"line":1903},[1082,14780,14781],{"class":1099},"    config_file ",[1082,14783,2029],{"class":1137},[1082,14785,3956],{"class":1099},[1082,14787,1165],{"class":1137},[1082,14789,3961],{"class":1141},[1082,14791,1145],{"class":1137},[1082,14793,1271],{"class":1190},[1082,14795,14796],{"class":1194},"DJANGO_CONFIG_FILE",[1082,14798,1271],{"class":1190},[1082,14800,2216],{"class":1137},[1082,14802,14803,14805,14808,14811,14813,14815,14818,14820,14822,14824,14827],{"class":1084,"line":1922},[1082,14804,2743],{"class":1095},[1082,14806,14807],{"class":1099}," config_file ",[1082,14809,14810],{"class":1546},"and",[1082,14812,3956],{"class":1099},[1082,14814,1165],{"class":1137},[1082,14816,14817],{"class":1161},"path",[1082,14819,1165],{"class":1137},[1082,14821,13713],{"class":1141},[1082,14823,1145],{"class":1137},[1082,14825,14826],{"class":1141},"config_file",[1082,14828,2733],{"class":1137},[1082,14830,14831,14834,14836,14839,14841,14843],{"class":1084,"line":1927},[1082,14832,14833],{"class":1099},"        loader",[1082,14835,1165],{"class":1137},[1082,14837,14838],{"class":1141},"load_from_file",[1082,14840,1145],{"class":1137},[1082,14842,14826],{"class":1141},[1082,14844,2216],{"class":1137},[1082,14846,14847],{"class":1084,"line":1933},[1082,14848,2775],{"class":1099},[1082,14850,14851],{"class":1084,"line":1948},[1082,14852,14853],{"class":1088},"    # Override with environment variables\n",[1082,14855,14856,14858,14860,14863],{"class":1084,"line":1967},[1082,14857,14755],{"class":1099},[1082,14859,1165],{"class":1137},[1082,14861,14862],{"class":1141},"load_from_env",[1082,14864,2229],{"class":1137},[1082,14866,14867],{"class":1084,"line":1972},[1082,14868,2775],{"class":1099},[1082,14870,14871],{"class":1084,"line":1978},[1082,14872,14873],{"class":1088},"    # Configure Django\n",[1082,14875,14876,14878,14880,14883],{"class":1084,"line":4996},[1082,14877,14755],{"class":1099},[1082,14879,1165],{"class":1137},[1082,14881,14882],{"class":1141},"configure_django",[1082,14884,2229],{"class":1137},[1082,14886,14887],{"class":1084,"line":6667},[1082,14888,1121],{"emptyLinePlaceholder":1120},[1082,14890,14891,14893,14895,14897,14899,14901,14903],{"class":1084,"line":6684},[1082,14892,3990],{"class":1095},[1082,14894,12439],{"class":1148},[1082,14896,3996],{"class":1546},[1082,14898,1191],{"class":1190},[1082,14900,12446],{"class":1194},[1082,14902,1271],{"class":1190},[1082,14904,2753],{"class":1137},[1082,14906,14907,14910],{"class":1084,"line":6701},[1082,14908,14909],{"class":1141},"    setup_django_from_config",[1082,14911,2229],{"class":1137},[1082,14913,14914],{"class":1084,"line":6715},[1082,14915,2775],{"class":1099},[1082,14917,14918],{"class":1084,"line":6729},[1082,14919,14920],{"class":1088},"    # Now Django is configured and ready to use\n",[1082,14922,14923,14925,14927,14929,14931,14933,14935,14937,14939,14941],{"class":1084,"line":6750},[1082,14924,10845],{"class":1095},[1082,14926,2161],{"class":1099},[1082,14928,1165],{"class":1137},[1082,14930,12324],{"class":1099},[1082,14932,1165],{"class":1137},[1082,14934,12329],{"class":1099},[1082,14936,1165],{"class":1137},[1082,14938,2250],{"class":1099},[1082,14940,1096],{"class":1095},[1082,14942,12338],{"class":1099},[1082,14944,14945,14947,14949,14951,14954,14956],{"class":1084,"line":6770},[1082,14946,13642],{"class":2296},[1082,14948,1145],{"class":1137},[1082,14950,2763],{"class":1190},[1082,14952,14953],{"class":1194},"Django configured successfully!",[1082,14955,2763],{"class":1190},[1082,14957,2216],{"class":1137},[1026,14959,14960],{},"Django settings provide the foundation for configuring your application's behavior, security, and integrations. Understanding how to properly structure, secure, and manage settings is essential for building maintainable Django applications that can adapt to different environments and requirements.",[8696,14962,14963],{},"html pre.shiki code .s9Tkl, html code.shiki .s9Tkl{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#A0ADA0;--shiki-default-font-style:inherit;--shiki-dark:#758575DD;--shiki-dark-font-style:inherit}html pre.shiki code .siDh9, html code.shiki .siDh9{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#1E754F;--shiki-default-font-style:inherit;--shiki-dark:#4D9375;--shiki-dark-font-style:inherit}html pre.shiki code .sftqT, html code.shiki .sftqT{--shiki-light:#90A4AE;--shiki-default:#393A34;--shiki-dark:#DBD7CAEE}html pre.shiki code .se3Ec, html code.shiki .se3Ec{--shiki-light:#90A4AE;--shiki-default:#A65E2B;--shiki-dark:#C99076}html pre.shiki code .soVBu, html code.shiki .soVBu{--shiki-light:#39ADB5;--shiki-default:#999999;--shiki-dark:#666666}html pre.shiki code .siWMO, html code.shiki .siWMO{--shiki-light:#6182B8;--shiki-default:#393A34;--shiki-dark:#DBD7CAEE}html pre.shiki code .s131V, html code.shiki .s131V{--shiki-light:#90A4AE;--shiki-default:#998418;--shiki-dark:#B8A965}html pre.shiki code .sBPpx, html code.shiki .sBPpx{--shiki-light:#E53935;--shiki-default:#393A34;--shiki-dark:#DBD7CAEE}html pre.shiki code .sbYkP, html code.shiki .sbYkP{--shiki-light:#39ADB5;--shiki-default:#B5695977;--shiki-dark:#C98A7D77}html pre.shiki code .sTbE_, html code.shiki .sTbE_{--shiki-light:#91B859;--shiki-default:#B56959;--shiki-dark:#C98A7D}html pre.shiki code .s8XtY, html code.shiki .s8XtY{--shiki-light:#39ADB5;--shiki-default:#1E754F;--shiki-dark:#4D9375}html pre.shiki code .sVsLi, html code.shiki .sVsLi{--shiki-light:#39ADB5;--shiki-default:#AB5959;--shiki-dark:#CB7676}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s5Kfy, html code.shiki .s5Kfy{--shiki-light:#9C3EDA;--shiki-default:#AB5959;--shiki-dark:#CB7676}html pre.shiki code .sSC40, html code.shiki .sSC40{--shiki-light:#90A4AE;--shiki-default:#B07D48;--shiki-dark:#BD976A}html pre.shiki code .sYn-s, html code.shiki .sYn-s{--shiki-light:#E2931D;--shiki-default:#59873A;--shiki-dark:#80A665}html pre.shiki code .sz9Cv, html code.shiki .sz9Cv{--shiki-light:#91B859;--shiki-default:#A65E2B;--shiki-dark:#C99076}html pre.shiki code .sJdAF, html code.shiki .sJdAF{--shiki-light:#6182B8;--shiki-default:#998418;--shiki-dark:#B8A965}html pre.shiki code .sFGJz, html code.shiki .sFGJz{--shiki-light:#E53935;--shiki-default:#A65E2B;--shiki-dark:#C99076}html pre.shiki code .s7CZa, html code.shiki .s7CZa{--shiki-light:#F76D47;--shiki-default:#2F798A;--shiki-dark:#4C9A91}html pre.shiki code .sljsM, html code.shiki .sljsM{--shiki-light:#6182B8;--shiki-default:#59873A;--shiki-dark:#80A665}html pre.shiki code .sCyAa, html code.shiki .sCyAa{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#393A34;--shiki-default-font-style:inherit;--shiki-dark:#DBD7CAEE;--shiki-dark-font-style:inherit}html pre.shiki code .sD-vU, html code.shiki .sD-vU{--shiki-light:#E2931D;--shiki-default:#2E8F82;--shiki-dark:#5DA994}html pre.shiki code .sqOPj, html code.shiki .sqOPj{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#B07D48;--shiki-default-font-style:inherit;--shiki-dark:#BD976A;--shiki-dark-font-style:inherit}html pre.shiki code .sRjD_, html code.shiki .sRjD_{--shiki-light:#E53935;--shiki-light-font-style:italic;--shiki-default:#393A34;--shiki-default-font-style:inherit;--shiki-dark:#DBD7CAEE;--shiki-dark-font-style:inherit}html pre.shiki code .s3h35, html code.shiki .s3h35{--shiki-light:#F76D47;--shiki-default:#A65E2B;--shiki-dark:#C99076}html pre.shiki code .sm7ve, html code.shiki .sm7ve{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#B5695977;--shiki-default-font-style:inherit;--shiki-dark:#C98A7D77;--shiki-dark-font-style:inherit}html pre.shiki code .sVyVU, html code.shiki .sVyVU{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#B56959;--shiki-default-font-style:inherit;--shiki-dark:#C98A7D;--shiki-dark-font-style:inherit}html pre.shiki code .sJFLg, html code.shiki .sJFLg{--shiki-light:#E53935;--shiki-default:#1E754F;--shiki-dark:#4D9375}html pre.shiki code .s5q8q, html code.shiki .s5q8q{--shiki-light:#9C3EDA;--shiki-default:#B07D48;--shiki-dark:#BD976A}html pre.shiki code .sa2tF, html code.shiki .sa2tF{--shiki-light:#E2931D;--shiki-default:#998418;--shiki-dark:#B8A965}html pre.shiki code .s6DHA, html code.shiki .s6DHA{--shiki-light:#6182B8;--shiki-default:#A65E2B;--shiki-dark:#C99076}",{"title":1077,"searchDepth":1085,"depth":1092,"links":14965},[14966,14970,14975,14979,14983,14987,14991,14995,15000],{"id":1032,"depth":1092,"text":1033,"children":14967},[14968,14969],{"id":1037,"depth":1103,"text":1038},{"id":1069,"depth":1103,"text":1070},{"id":1993,"depth":1092,"text":1994,"children":14971},[14972,14973,14974],{"id":1997,"depth":1103,"text":1998},{"id":2069,"depth":1103,"text":2070},{"id":2130,"depth":1103,"text":2131},{"id":2258,"depth":1092,"text":2259,"children":14976},[14977,14978],{"id":2262,"depth":1103,"text":2263},{"id":2359,"depth":1103,"text":2360},{"id":2687,"depth":1092,"text":2688,"children":14980},[14981,14982],{"id":2691,"depth":1103,"text":2692},{"id":3472,"depth":1103,"text":3473},{"id":3878,"depth":1092,"text":3879,"children":14984},[14985,14986],{"id":3882,"depth":1103,"text":3883},{"id":5002,"depth":1103,"text":5003},{"id":5734,"depth":1092,"text":541,"children":14988},[14989,14990],{"id":5737,"depth":1103,"text":5738},{"id":6900,"depth":1103,"text":6901},{"id":7357,"depth":1092,"text":7358,"children":14992},[14993,14994],{"id":7361,"depth":1103,"text":7362},{"id":8122,"depth":1103,"text":8123},{"id":9453,"depth":1092,"text":9454,"children":14996},[14997,14998,14999],{"id":9457,"depth":1103,"text":9458},{"id":10662,"depth":1103,"text":10663},{"id":11140,"depth":1103,"text":11141},{"id":12089,"depth":1092,"text":12090,"children":15001},[15002,15003,15004,15005],{"id":12093,"depth":1103,"text":12094},{"id":12460,"depth":1103,"text":12461},{"id":13149,"depth":1103,"text":13150},{"id":13801,"depth":1103,"text":13802},"md",null,{},{"title":51,"description":1028},"Gk2W6W0O3haWh0TLWpscVbThnBXn7FjlEN-7wTkdkB4",[15012,15014],{"title":47,"path":48,"stem":49,"description":15013,"children":-1},"Understanding Django's request-response cycle is fundamental to building effective web applications. This comprehensive guide explores every step of how Django processes HTTP requests, from the initial URL resolution to the final response delivery.",{"title":60,"path":56,"stem":57,"description":15015,"children":-1},"A well-configured development environment is crucial for productive Django development. This section covers everything you need to set up a professional, efficient, and maintainable development workflow that scales from personal projects to enterprise applications.",1772474899665]