[{"data":1,"prerenderedAt":14109},["ShallowReactive",2],{"navigation":3,"/asynchronous-django/async-views":1016,"/asynchronous-django/async-views-surround":14104},[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":713,"body":1018,"description":1028,"extension":14099,"links":14100,"meta":14101,"navigation":1211,"path":714,"seo":14102,"stem":715,"__hash__":14103},"docs/19.asynchronous-django/03.async-views.md",{"type":1019,"value":1020,"toc":14081},"minimark",[1021,1025,1029,1034,1039,2494,2498,5457,5461,5465,6971,6975,8399,8403,8407,10568,10572,12335,12339,12343,13142,13146,14074,14077],[1022,1023,713],"h1",{"id":1024},"async-views",[1026,1027,1028],"p",{},"Django's async views enable handling high-concurrency scenarios efficiently by allowing views to perform I/O operations without blocking the server thread. This chapter covers implementing async views, handling concurrent operations, integrating with external services, and optimizing performance for I/O-bound operations.",[1030,1031,1033],"h2",{"id":1032},"basic-async-views","Basic Async Views",[1035,1036,1038],"h3",{"id":1037},"function-based-async-views","Function-Based Async Views",[1040,1041,1046],"pre",{"className":1042,"code":1043,"language":1044,"meta":1045,"style":1045},"language-python shiki shiki-themes material-theme-lighter vitesse-light vitesse-dark","# views.py\nimport asyncio\nimport aiohttp\nfrom django.http import JsonResponse\nfrom django.shortcuts import aget_object_or_404\nfrom django.views.decorators.http import require_http_methods\nfrom django.views.decorators.csrf import csrf_exempt\nfrom asgiref.sync import sync_to_async\nfrom .models import Post, User\n\nasync def async_hello(request):\n    \"\"\"Basic async view.\"\"\"\n    await asyncio.sleep(0.1)  # Simulate async operation\n    return JsonResponse({'message': 'Hello from async view!'})\n\nasync def async_post_list(request):\n    \"\"\"Async view with database operations.\"\"\"\n    # Using async database operations (Django 4.1+)\n    posts = []\n    async for post in Post.objects.filter(published=True):\n        posts.append({\n            'id': post.id,\n            'title': post.title,\n            'created_at': post.created_at.isoformat()\n        })\n    \n    return JsonResponse({'posts': posts})\n\nasync def async_post_detail(request, post_id):\n    \"\"\"Async view with get_object_or_404 equivalent.\"\"\"\n    try:\n        # Using aget_object_or_404 for async get operations\n        post = await aget_object_or_404(Post, id=post_id, published=True)\n        \n        # Fetch related data concurrently\n        author_task = sync_to_async(lambda: post.author)()\n        comments_task = sync_to_async(lambda: list(post.comments.all()))()\n        \n        author, comments = await asyncio.gather(author_task, comments_task)\n        \n        return JsonResponse({\n            'id': post.id,\n            'title': post.title,\n            'content': post.content,\n            'author': author.username,\n            'comments_count': len(comments)\n        })\n    \n    except Post.DoesNotExist:\n        return JsonResponse({'error': 'Post not found'}, status=404)\n\n@require_http_methods([\"GET\", \"POST\"])\nasync def async_api_endpoint(request):\n    \"\"\"Async view handling multiple HTTP methods.\"\"\"\n    if request.method == 'GET':\n        # Simulate fetching data from external API\n        async with aiohttp.ClientSession() as session:\n            async with session.get('https://api.example.com/data') as response:\n                if response.status == 200:\n                    data = await response.json()\n                    return JsonResponse(data)\n                else:\n                    return JsonResponse({'error': 'External API error'}, status=502)\n    \n    elif request.method == 'POST':\n        # Handle POST request asynchronously\n        import json\n        \n        try:\n            body = await request.aread()\n            data = json.loads(body)\n            \n            # Process data asynchronously\n            result = await process_data_async(data)\n            \n            return JsonResponse({'result': result, 'status': 'success'})\n        \n        except json.JSONDecodeError:\n            return JsonResponse({'error': 'Invalid JSON'}, status=400)\n\nasync def process_data_async(data):\n    \"\"\"Async data processing function.\"\"\"\n    # Simulate async processing\n    await asyncio.sleep(0.5)\n    return f\"Processed: {data.get('message', 'No message')}\"\n","python","",[1047,1048,1049,1058,1069,1077,1098,1115,1141,1166,1184,1206,1213,1237,1251,1278,1314,1319,1335,1345,1351,1363,1405,1419,1442,1462,1488,1494,1500,1523,1528,1549,1559,1568,1574,1615,1621,1627,1655,1693,1698,1732,1737,1747,1766,1785,1805,1826,1848,1853,1858,1873,1911,1916,1949,1965,1975,2001,2007,2035,2068,2088,2107,2122,2130,2165,2170,2192,2198,2207,2212,2220,2239,2262,2268,2274,2293,2298,2339,2344,2359,2394,2399,2414,2424,2430,2448],"code",{"__ignoreMap":1045},[1050,1051,1054],"span",{"class":1052,"line":1053},"line",1,[1050,1055,1057],{"class":1056},"s9Tkl","# views.py\n",[1050,1059,1061,1065],{"class":1052,"line":1060},2,[1050,1062,1064],{"class":1063},"siDh9","import",[1050,1066,1068],{"class":1067},"sftqT"," asyncio\n",[1050,1070,1072,1074],{"class":1052,"line":1071},3,[1050,1073,1064],{"class":1063},[1050,1075,1076],{"class":1067}," aiohttp\n",[1050,1078,1080,1083,1086,1090,1093,1095],{"class":1052,"line":1079},4,[1050,1081,1082],{"class":1063},"from",[1050,1084,1085],{"class":1067}," django",[1050,1087,1089],{"class":1088},"soVBu",".",[1050,1091,1092],{"class":1067},"http ",[1050,1094,1064],{"class":1063},[1050,1096,1097],{"class":1067}," JsonResponse\n",[1050,1099,1101,1103,1105,1107,1110,1112],{"class":1052,"line":1100},5,[1050,1102,1082],{"class":1063},[1050,1104,1085],{"class":1067},[1050,1106,1089],{"class":1088},[1050,1108,1109],{"class":1067},"shortcuts ",[1050,1111,1064],{"class":1063},[1050,1113,1114],{"class":1067}," aget_object_or_404\n",[1050,1116,1118,1120,1122,1124,1127,1129,1132,1134,1136,1138],{"class":1052,"line":1117},6,[1050,1119,1082],{"class":1063},[1050,1121,1085],{"class":1067},[1050,1123,1089],{"class":1088},[1050,1125,1126],{"class":1067},"views",[1050,1128,1089],{"class":1088},[1050,1130,1131],{"class":1067},"decorators",[1050,1133,1089],{"class":1088},[1050,1135,1092],{"class":1067},[1050,1137,1064],{"class":1063},[1050,1139,1140],{"class":1067}," require_http_methods\n",[1050,1142,1144,1146,1148,1150,1152,1154,1156,1158,1161,1163],{"class":1052,"line":1143},7,[1050,1145,1082],{"class":1063},[1050,1147,1085],{"class":1067},[1050,1149,1089],{"class":1088},[1050,1151,1126],{"class":1067},[1050,1153,1089],{"class":1088},[1050,1155,1131],{"class":1067},[1050,1157,1089],{"class":1088},[1050,1159,1160],{"class":1067},"csrf ",[1050,1162,1064],{"class":1063},[1050,1164,1165],{"class":1067}," csrf_exempt\n",[1050,1167,1169,1171,1174,1176,1179,1181],{"class":1052,"line":1168},8,[1050,1170,1082],{"class":1063},[1050,1172,1173],{"class":1067}," asgiref",[1050,1175,1089],{"class":1088},[1050,1177,1178],{"class":1067},"sync ",[1050,1180,1064],{"class":1063},[1050,1182,1183],{"class":1067}," sync_to_async\n",[1050,1185,1187,1189,1192,1195,1197,1200,1203],{"class":1052,"line":1186},9,[1050,1188,1082],{"class":1063},[1050,1190,1191],{"class":1088}," .",[1050,1193,1194],{"class":1067},"models ",[1050,1196,1064],{"class":1063},[1050,1198,1199],{"class":1067}," Post",[1050,1201,1202],{"class":1088},",",[1050,1204,1205],{"class":1067}," User\n",[1050,1207,1209],{"class":1052,"line":1208},10,[1050,1210,1212],{"emptyLinePlaceholder":1211},true,"\n",[1050,1214,1216,1220,1223,1227,1230,1234],{"class":1052,"line":1215},11,[1050,1217,1219],{"class":1218},"s5Kfy","async",[1050,1221,1222],{"class":1218}," def",[1050,1224,1226],{"class":1225},"sljsM"," async_hello",[1050,1228,1229],{"class":1088},"(",[1050,1231,1233],{"class":1232},"sCyAa","request",[1050,1235,1236],{"class":1088},"):\n",[1050,1238,1240,1244,1248],{"class":1052,"line":1239},12,[1050,1241,1243],{"class":1242},"sm7ve","    \"\"\"",[1050,1245,1247],{"class":1246},"sVyVU","Basic async view.",[1050,1249,1250],{"class":1242},"\"\"\"\n",[1050,1252,1254,1257,1260,1262,1266,1268,1272,1275],{"class":1052,"line":1253},13,[1050,1255,1256],{"class":1063},"    await",[1050,1258,1259],{"class":1067}," asyncio",[1050,1261,1089],{"class":1088},[1050,1263,1265],{"class":1264},"siWMO","sleep",[1050,1267,1229],{"class":1088},[1050,1269,1271],{"class":1270},"s7CZa","0.1",[1050,1273,1274],{"class":1088},")",[1050,1276,1277],{"class":1056},"  # Simulate async operation\n",[1050,1279,1281,1284,1287,1290,1294,1298,1300,1303,1306,1309,1311],{"class":1052,"line":1280},14,[1050,1282,1283],{"class":1063},"    return",[1050,1285,1286],{"class":1264}," JsonResponse",[1050,1288,1289],{"class":1088},"({",[1050,1291,1293],{"class":1292},"sbYkP","'",[1050,1295,1297],{"class":1296},"sTbE_","message",[1050,1299,1293],{"class":1292},[1050,1301,1302],{"class":1088},":",[1050,1304,1305],{"class":1292}," '",[1050,1307,1308],{"class":1296},"Hello from async view!",[1050,1310,1293],{"class":1292},[1050,1312,1313],{"class":1088},"})\n",[1050,1315,1317],{"class":1052,"line":1316},15,[1050,1318,1212],{"emptyLinePlaceholder":1211},[1050,1320,1322,1324,1326,1329,1331,1333],{"class":1052,"line":1321},16,[1050,1323,1219],{"class":1218},[1050,1325,1222],{"class":1218},[1050,1327,1328],{"class":1225}," async_post_list",[1050,1330,1229],{"class":1088},[1050,1332,1233],{"class":1232},[1050,1334,1236],{"class":1088},[1050,1336,1338,1340,1343],{"class":1052,"line":1337},17,[1050,1339,1243],{"class":1242},[1050,1341,1342],{"class":1246},"Async view with database operations.",[1050,1344,1250],{"class":1242},[1050,1346,1348],{"class":1052,"line":1347},18,[1050,1349,1350],{"class":1056},"    # Using async database operations (Django 4.1+)\n",[1050,1352,1354,1357,1360],{"class":1052,"line":1353},19,[1050,1355,1356],{"class":1067},"    posts ",[1050,1358,1359],{"class":1088},"=",[1050,1361,1362],{"class":1088}," []\n",[1050,1364,1366,1369,1372,1375,1378,1380,1382,1386,1388,1391,1393,1397,1399,1403],{"class":1052,"line":1365},20,[1050,1367,1368],{"class":1063},"    async",[1050,1370,1371],{"class":1063}," for",[1050,1373,1374],{"class":1067}," post ",[1050,1376,1377],{"class":1063},"in",[1050,1379,1199],{"class":1067},[1050,1381,1089],{"class":1088},[1050,1383,1385],{"class":1384},"sBPpx","objects",[1050,1387,1089],{"class":1088},[1050,1389,1390],{"class":1264},"filter",[1050,1392,1229],{"class":1088},[1050,1394,1396],{"class":1395},"sqOPj","published",[1050,1398,1359],{"class":1088},[1050,1400,1402],{"class":1401},"s8XtY","True",[1050,1404,1236],{"class":1088},[1050,1406,1408,1411,1413,1416],{"class":1052,"line":1407},21,[1050,1409,1410],{"class":1067},"        posts",[1050,1412,1089],{"class":1088},[1050,1414,1415],{"class":1264},"append",[1050,1417,1418],{"class":1088},"({\n",[1050,1420,1422,1425,1428,1430,1432,1435,1437,1439],{"class":1052,"line":1421},22,[1050,1423,1424],{"class":1292},"            '",[1050,1426,1427],{"class":1296},"id",[1050,1429,1293],{"class":1292},[1050,1431,1302],{"class":1088},[1050,1433,1434],{"class":1264}," post",[1050,1436,1089],{"class":1088},[1050,1438,1427],{"class":1384},[1050,1440,1441],{"class":1088},",\n",[1050,1443,1445,1447,1450,1452,1454,1456,1458,1460],{"class":1052,"line":1444},23,[1050,1446,1424],{"class":1292},[1050,1448,1449],{"class":1296},"title",[1050,1451,1293],{"class":1292},[1050,1453,1302],{"class":1088},[1050,1455,1434],{"class":1264},[1050,1457,1089],{"class":1088},[1050,1459,1449],{"class":1384},[1050,1461,1441],{"class":1088},[1050,1463,1465,1467,1470,1472,1474,1476,1478,1480,1482,1485],{"class":1052,"line":1464},24,[1050,1466,1424],{"class":1292},[1050,1468,1469],{"class":1296},"created_at",[1050,1471,1293],{"class":1292},[1050,1473,1302],{"class":1088},[1050,1475,1434],{"class":1264},[1050,1477,1089],{"class":1088},[1050,1479,1469],{"class":1384},[1050,1481,1089],{"class":1088},[1050,1483,1484],{"class":1264},"isoformat",[1050,1486,1487],{"class":1088},"()\n",[1050,1489,1491],{"class":1052,"line":1490},25,[1050,1492,1493],{"class":1088},"        })\n",[1050,1495,1497],{"class":1052,"line":1496},26,[1050,1498,1499],{"class":1067},"    \n",[1050,1501,1503,1505,1507,1509,1511,1514,1516,1518,1521],{"class":1052,"line":1502},27,[1050,1504,1283],{"class":1063},[1050,1506,1286],{"class":1264},[1050,1508,1289],{"class":1088},[1050,1510,1293],{"class":1292},[1050,1512,1513],{"class":1296},"posts",[1050,1515,1293],{"class":1292},[1050,1517,1302],{"class":1088},[1050,1519,1520],{"class":1264}," posts",[1050,1522,1313],{"class":1088},[1050,1524,1526],{"class":1052,"line":1525},28,[1050,1527,1212],{"emptyLinePlaceholder":1211},[1050,1529,1531,1533,1535,1538,1540,1542,1544,1547],{"class":1052,"line":1530},29,[1050,1532,1219],{"class":1218},[1050,1534,1222],{"class":1218},[1050,1536,1537],{"class":1225}," async_post_detail",[1050,1539,1229],{"class":1088},[1050,1541,1233],{"class":1232},[1050,1543,1202],{"class":1088},[1050,1545,1546],{"class":1232}," post_id",[1050,1548,1236],{"class":1088},[1050,1550,1552,1554,1557],{"class":1052,"line":1551},30,[1050,1553,1243],{"class":1242},[1050,1555,1556],{"class":1246},"Async view with get_object_or_404 equivalent.",[1050,1558,1250],{"class":1242},[1050,1560,1562,1565],{"class":1052,"line":1561},31,[1050,1563,1564],{"class":1063},"    try",[1050,1566,1567],{"class":1088},":\n",[1050,1569,1571],{"class":1052,"line":1570},32,[1050,1572,1573],{"class":1056},"        # Using aget_object_or_404 for async get operations\n",[1050,1575,1577,1580,1582,1585,1588,1590,1593,1595,1598,1600,1603,1605,1608,1610,1612],{"class":1052,"line":1576},33,[1050,1578,1579],{"class":1067},"        post ",[1050,1581,1359],{"class":1088},[1050,1583,1584],{"class":1063}," await",[1050,1586,1587],{"class":1264}," aget_object_or_404",[1050,1589,1229],{"class":1088},[1050,1591,1592],{"class":1264},"Post",[1050,1594,1202],{"class":1088},[1050,1596,1597],{"class":1395}," id",[1050,1599,1359],{"class":1088},[1050,1601,1602],{"class":1264},"post_id",[1050,1604,1202],{"class":1088},[1050,1606,1607],{"class":1395}," published",[1050,1609,1359],{"class":1088},[1050,1611,1402],{"class":1401},[1050,1613,1614],{"class":1088},")\n",[1050,1616,1618],{"class":1052,"line":1617},34,[1050,1619,1620],{"class":1067},"        \n",[1050,1622,1624],{"class":1052,"line":1623},35,[1050,1625,1626],{"class":1056},"        # Fetch related data concurrently\n",[1050,1628,1630,1633,1635,1638,1640,1643,1645,1647,1649,1652],{"class":1052,"line":1629},36,[1050,1631,1632],{"class":1067},"        author_task ",[1050,1634,1359],{"class":1088},[1050,1636,1637],{"class":1264}," sync_to_async",[1050,1639,1229],{"class":1088},[1050,1641,1642],{"class":1218},"lambda",[1050,1644,1302],{"class":1088},[1050,1646,1434],{"class":1264},[1050,1648,1089],{"class":1088},[1050,1650,1651],{"class":1384},"author",[1050,1653,1654],{"class":1088},")()\n",[1050,1656,1658,1661,1663,1665,1667,1669,1671,1675,1677,1680,1682,1685,1687,1690],{"class":1052,"line":1657},37,[1050,1659,1660],{"class":1067},"        comments_task ",[1050,1662,1359],{"class":1088},[1050,1664,1637],{"class":1264},[1050,1666,1229],{"class":1088},[1050,1668,1642],{"class":1218},[1050,1670,1302],{"class":1088},[1050,1672,1674],{"class":1673},"sa2tF"," list",[1050,1676,1229],{"class":1088},[1050,1678,1679],{"class":1264},"post",[1050,1681,1089],{"class":1088},[1050,1683,1684],{"class":1384},"comments",[1050,1686,1089],{"class":1088},[1050,1688,1689],{"class":1264},"all",[1050,1691,1692],{"class":1088},"()))()\n",[1050,1694,1696],{"class":1052,"line":1695},38,[1050,1697,1620],{"class":1067},[1050,1699,1701,1704,1706,1709,1711,1713,1715,1717,1720,1722,1725,1727,1730],{"class":1052,"line":1700},39,[1050,1702,1703],{"class":1067},"        author",[1050,1705,1202],{"class":1088},[1050,1707,1708],{"class":1067}," comments ",[1050,1710,1359],{"class":1088},[1050,1712,1584],{"class":1063},[1050,1714,1259],{"class":1067},[1050,1716,1089],{"class":1088},[1050,1718,1719],{"class":1264},"gather",[1050,1721,1229],{"class":1088},[1050,1723,1724],{"class":1264},"author_task",[1050,1726,1202],{"class":1088},[1050,1728,1729],{"class":1264}," comments_task",[1050,1731,1614],{"class":1088},[1050,1733,1735],{"class":1052,"line":1734},40,[1050,1736,1620],{"class":1067},[1050,1738,1740,1743,1745],{"class":1052,"line":1739},41,[1050,1741,1742],{"class":1063},"        return",[1050,1744,1286],{"class":1264},[1050,1746,1418],{"class":1088},[1050,1748,1750,1752,1754,1756,1758,1760,1762,1764],{"class":1052,"line":1749},42,[1050,1751,1424],{"class":1292},[1050,1753,1427],{"class":1296},[1050,1755,1293],{"class":1292},[1050,1757,1302],{"class":1088},[1050,1759,1434],{"class":1264},[1050,1761,1089],{"class":1088},[1050,1763,1427],{"class":1384},[1050,1765,1441],{"class":1088},[1050,1767,1769,1771,1773,1775,1777,1779,1781,1783],{"class":1052,"line":1768},43,[1050,1770,1424],{"class":1292},[1050,1772,1449],{"class":1296},[1050,1774,1293],{"class":1292},[1050,1776,1302],{"class":1088},[1050,1778,1434],{"class":1264},[1050,1780,1089],{"class":1088},[1050,1782,1449],{"class":1384},[1050,1784,1441],{"class":1088},[1050,1786,1788,1790,1793,1795,1797,1799,1801,1803],{"class":1052,"line":1787},44,[1050,1789,1424],{"class":1292},[1050,1791,1792],{"class":1296},"content",[1050,1794,1293],{"class":1292},[1050,1796,1302],{"class":1088},[1050,1798,1434],{"class":1264},[1050,1800,1089],{"class":1088},[1050,1802,1792],{"class":1384},[1050,1804,1441],{"class":1088},[1050,1806,1808,1810,1812,1814,1816,1819,1821,1824],{"class":1052,"line":1807},45,[1050,1809,1424],{"class":1292},[1050,1811,1651],{"class":1296},[1050,1813,1293],{"class":1292},[1050,1815,1302],{"class":1088},[1050,1817,1818],{"class":1264}," author",[1050,1820,1089],{"class":1088},[1050,1822,1823],{"class":1384},"username",[1050,1825,1441],{"class":1088},[1050,1827,1829,1831,1834,1836,1838,1842,1844,1846],{"class":1052,"line":1828},46,[1050,1830,1424],{"class":1292},[1050,1832,1833],{"class":1296},"comments_count",[1050,1835,1293],{"class":1292},[1050,1837,1302],{"class":1088},[1050,1839,1841],{"class":1840},"sJdAF"," len",[1050,1843,1229],{"class":1088},[1050,1845,1684],{"class":1264},[1050,1847,1614],{"class":1088},[1050,1849,1851],{"class":1052,"line":1850},47,[1050,1852,1493],{"class":1088},[1050,1854,1856],{"class":1052,"line":1855},48,[1050,1857,1499],{"class":1067},[1050,1859,1861,1864,1866,1868,1871],{"class":1052,"line":1860},49,[1050,1862,1863],{"class":1063},"    except",[1050,1865,1199],{"class":1067},[1050,1867,1089],{"class":1088},[1050,1869,1870],{"class":1384},"DoesNotExist",[1050,1872,1567],{"class":1088},[1050,1874,1876,1878,1880,1882,1884,1887,1889,1891,1893,1896,1898,1901,1904,1906,1909],{"class":1052,"line":1875},50,[1050,1877,1742],{"class":1063},[1050,1879,1286],{"class":1264},[1050,1881,1289],{"class":1088},[1050,1883,1293],{"class":1292},[1050,1885,1886],{"class":1296},"error",[1050,1888,1293],{"class":1292},[1050,1890,1302],{"class":1088},[1050,1892,1305],{"class":1292},[1050,1894,1895],{"class":1296},"Post not found",[1050,1897,1293],{"class":1292},[1050,1899,1900],{"class":1088},"},",[1050,1902,1903],{"class":1395}," status",[1050,1905,1359],{"class":1088},[1050,1907,1908],{"class":1270},"404",[1050,1910,1614],{"class":1088},[1050,1912,1914],{"class":1052,"line":1913},51,[1050,1915,1212],{"emptyLinePlaceholder":1211},[1050,1917,1919,1922,1925,1928,1931,1934,1936,1938,1941,1944,1946],{"class":1052,"line":1918},52,[1050,1920,1921],{"class":1088},"@",[1050,1923,1924],{"class":1225},"require_http_methods",[1050,1926,1927],{"class":1088},"([",[1050,1929,1930],{"class":1292},"\"",[1050,1932,1933],{"class":1296},"GET",[1050,1935,1930],{"class":1292},[1050,1937,1202],{"class":1088},[1050,1939,1940],{"class":1292}," \"",[1050,1942,1943],{"class":1296},"POST",[1050,1945,1930],{"class":1292},[1050,1947,1948],{"class":1088},"])\n",[1050,1950,1952,1954,1956,1959,1961,1963],{"class":1052,"line":1951},53,[1050,1953,1219],{"class":1218},[1050,1955,1222],{"class":1218},[1050,1957,1958],{"class":1225}," async_api_endpoint",[1050,1960,1229],{"class":1088},[1050,1962,1233],{"class":1232},[1050,1964,1236],{"class":1088},[1050,1966,1968,1970,1973],{"class":1052,"line":1967},54,[1050,1969,1243],{"class":1242},[1050,1971,1972],{"class":1246},"Async view handling multiple HTTP methods.",[1050,1974,1250],{"class":1242},[1050,1976,1978,1981,1984,1986,1989,1993,1995,1997,1999],{"class":1052,"line":1977},55,[1050,1979,1980],{"class":1063},"    if",[1050,1982,1983],{"class":1067}," request",[1050,1985,1089],{"class":1088},[1050,1987,1988],{"class":1384},"method",[1050,1990,1992],{"class":1991},"sVsLi"," ==",[1050,1994,1305],{"class":1292},[1050,1996,1933],{"class":1296},[1050,1998,1293],{"class":1292},[1050,2000,1567],{"class":1088},[1050,2002,2004],{"class":1052,"line":2003},56,[1050,2005,2006],{"class":1056},"        # Simulate fetching data from external API\n",[1050,2008,2010,2013,2016,2019,2021,2024,2027,2030,2033],{"class":1052,"line":2009},57,[1050,2011,2012],{"class":1063},"        async",[1050,2014,2015],{"class":1063}," with",[1050,2017,2018],{"class":1067}," aiohttp",[1050,2020,1089],{"class":1088},[1050,2022,2023],{"class":1264},"ClientSession",[1050,2025,2026],{"class":1088},"()",[1050,2028,2029],{"class":1063}," as",[1050,2031,2032],{"class":1067}," session",[1050,2034,1567],{"class":1088},[1050,2036,2038,2041,2043,2045,2047,2050,2052,2054,2057,2059,2061,2063,2066],{"class":1052,"line":2037},58,[1050,2039,2040],{"class":1063},"            async",[1050,2042,2015],{"class":1063},[1050,2044,2032],{"class":1067},[1050,2046,1089],{"class":1088},[1050,2048,2049],{"class":1264},"get",[1050,2051,1229],{"class":1088},[1050,2053,1293],{"class":1292},[1050,2055,2056],{"class":1296},"https://api.example.com/data",[1050,2058,1293],{"class":1292},[1050,2060,1274],{"class":1088},[1050,2062,2029],{"class":1063},[1050,2064,2065],{"class":1067}," response",[1050,2067,1567],{"class":1088},[1050,2069,2071,2074,2076,2078,2081,2083,2086],{"class":1052,"line":2070},59,[1050,2072,2073],{"class":1063},"                if",[1050,2075,2065],{"class":1067},[1050,2077,1089],{"class":1088},[1050,2079,2080],{"class":1384},"status",[1050,2082,1992],{"class":1991},[1050,2084,2085],{"class":1270}," 200",[1050,2087,1567],{"class":1088},[1050,2089,2091,2094,2096,2098,2100,2102,2105],{"class":1052,"line":2090},60,[1050,2092,2093],{"class":1067},"                    data ",[1050,2095,1359],{"class":1088},[1050,2097,1584],{"class":1063},[1050,2099,2065],{"class":1067},[1050,2101,1089],{"class":1088},[1050,2103,2104],{"class":1264},"json",[1050,2106,1487],{"class":1088},[1050,2108,2110,2113,2115,2117,2120],{"class":1052,"line":2109},61,[1050,2111,2112],{"class":1063},"                    return",[1050,2114,1286],{"class":1264},[1050,2116,1229],{"class":1088},[1050,2118,2119],{"class":1264},"data",[1050,2121,1614],{"class":1088},[1050,2123,2125,2128],{"class":1052,"line":2124},62,[1050,2126,2127],{"class":1063},"                else",[1050,2129,1567],{"class":1088},[1050,2131,2133,2135,2137,2139,2141,2143,2145,2147,2149,2152,2154,2156,2158,2160,2163],{"class":1052,"line":2132},63,[1050,2134,2112],{"class":1063},[1050,2136,1286],{"class":1264},[1050,2138,1289],{"class":1088},[1050,2140,1293],{"class":1292},[1050,2142,1886],{"class":1296},[1050,2144,1293],{"class":1292},[1050,2146,1302],{"class":1088},[1050,2148,1305],{"class":1292},[1050,2150,2151],{"class":1296},"External API error",[1050,2153,1293],{"class":1292},[1050,2155,1900],{"class":1088},[1050,2157,1903],{"class":1395},[1050,2159,1359],{"class":1088},[1050,2161,2162],{"class":1270},"502",[1050,2164,1614],{"class":1088},[1050,2166,2168],{"class":1052,"line":2167},64,[1050,2169,1499],{"class":1067},[1050,2171,2173,2176,2178,2180,2182,2184,2186,2188,2190],{"class":1052,"line":2172},65,[1050,2174,2175],{"class":1063},"    elif",[1050,2177,1983],{"class":1067},[1050,2179,1089],{"class":1088},[1050,2181,1988],{"class":1384},[1050,2183,1992],{"class":1991},[1050,2185,1305],{"class":1292},[1050,2187,1943],{"class":1296},[1050,2189,1293],{"class":1292},[1050,2191,1567],{"class":1088},[1050,2193,2195],{"class":1052,"line":2194},66,[1050,2196,2197],{"class":1056},"        # Handle POST request asynchronously\n",[1050,2199,2201,2204],{"class":1052,"line":2200},67,[1050,2202,2203],{"class":1063},"        import",[1050,2205,2206],{"class":1067}," json\n",[1050,2208,2210],{"class":1052,"line":2209},68,[1050,2211,1620],{"class":1067},[1050,2213,2215,2218],{"class":1052,"line":2214},69,[1050,2216,2217],{"class":1063},"        try",[1050,2219,1567],{"class":1088},[1050,2221,2223,2226,2228,2230,2232,2234,2237],{"class":1052,"line":2222},70,[1050,2224,2225],{"class":1067},"            body ",[1050,2227,1359],{"class":1088},[1050,2229,1584],{"class":1063},[1050,2231,1983],{"class":1067},[1050,2233,1089],{"class":1088},[1050,2235,2236],{"class":1264},"aread",[1050,2238,1487],{"class":1088},[1050,2240,2242,2245,2247,2250,2252,2255,2257,2260],{"class":1052,"line":2241},71,[1050,2243,2244],{"class":1067},"            data ",[1050,2246,1359],{"class":1088},[1050,2248,2249],{"class":1067}," json",[1050,2251,1089],{"class":1088},[1050,2253,2254],{"class":1264},"loads",[1050,2256,1229],{"class":1088},[1050,2258,2259],{"class":1264},"body",[1050,2261,1614],{"class":1088},[1050,2263,2265],{"class":1052,"line":2264},72,[1050,2266,2267],{"class":1067},"            \n",[1050,2269,2271],{"class":1052,"line":2270},73,[1050,2272,2273],{"class":1056},"            # Process data asynchronously\n",[1050,2275,2277,2280,2282,2284,2287,2289,2291],{"class":1052,"line":2276},74,[1050,2278,2279],{"class":1067},"            result ",[1050,2281,1359],{"class":1088},[1050,2283,1584],{"class":1063},[1050,2285,2286],{"class":1264}," process_data_async",[1050,2288,1229],{"class":1088},[1050,2290,2119],{"class":1264},[1050,2292,1614],{"class":1088},[1050,2294,2296],{"class":1052,"line":2295},75,[1050,2297,2267],{"class":1067},[1050,2299,2301,2304,2306,2308,2310,2313,2315,2317,2320,2322,2324,2326,2328,2330,2332,2335,2337],{"class":1052,"line":2300},76,[1050,2302,2303],{"class":1063},"            return",[1050,2305,1286],{"class":1264},[1050,2307,1289],{"class":1088},[1050,2309,1293],{"class":1292},[1050,2311,2312],{"class":1296},"result",[1050,2314,1293],{"class":1292},[1050,2316,1302],{"class":1088},[1050,2318,2319],{"class":1264}," result",[1050,2321,1202],{"class":1088},[1050,2323,1305],{"class":1292},[1050,2325,2080],{"class":1296},[1050,2327,1293],{"class":1292},[1050,2329,1302],{"class":1088},[1050,2331,1305],{"class":1292},[1050,2333,2334],{"class":1296},"success",[1050,2336,1293],{"class":1292},[1050,2338,1313],{"class":1088},[1050,2340,2342],{"class":1052,"line":2341},77,[1050,2343,1620],{"class":1067},[1050,2345,2347,2350,2352,2354,2357],{"class":1052,"line":2346},78,[1050,2348,2349],{"class":1063},"        except",[1050,2351,2249],{"class":1067},[1050,2353,1089],{"class":1088},[1050,2355,2356],{"class":1384},"JSONDecodeError",[1050,2358,1567],{"class":1088},[1050,2360,2362,2364,2366,2368,2370,2372,2374,2376,2378,2381,2383,2385,2387,2389,2392],{"class":1052,"line":2361},79,[1050,2363,2303],{"class":1063},[1050,2365,1286],{"class":1264},[1050,2367,1289],{"class":1088},[1050,2369,1293],{"class":1292},[1050,2371,1886],{"class":1296},[1050,2373,1293],{"class":1292},[1050,2375,1302],{"class":1088},[1050,2377,1305],{"class":1292},[1050,2379,2380],{"class":1296},"Invalid JSON",[1050,2382,1293],{"class":1292},[1050,2384,1900],{"class":1088},[1050,2386,1903],{"class":1395},[1050,2388,1359],{"class":1088},[1050,2390,2391],{"class":1270},"400",[1050,2393,1614],{"class":1088},[1050,2395,2397],{"class":1052,"line":2396},80,[1050,2398,1212],{"emptyLinePlaceholder":1211},[1050,2400,2402,2404,2406,2408,2410,2412],{"class":1052,"line":2401},81,[1050,2403,1219],{"class":1218},[1050,2405,1222],{"class":1218},[1050,2407,2286],{"class":1225},[1050,2409,1229],{"class":1088},[1050,2411,2119],{"class":1232},[1050,2413,1236],{"class":1088},[1050,2415,2417,2419,2422],{"class":1052,"line":2416},82,[1050,2418,1243],{"class":1242},[1050,2420,2421],{"class":1246},"Async data processing function.",[1050,2423,1250],{"class":1242},[1050,2425,2427],{"class":1052,"line":2426},83,[1050,2428,2429],{"class":1056},"    # Simulate async processing\n",[1050,2431,2433,2435,2437,2439,2441,2443,2446],{"class":1052,"line":2432},84,[1050,2434,1256],{"class":1063},[1050,2436,1259],{"class":1067},[1050,2438,1089],{"class":1088},[1050,2440,1265],{"class":1264},[1050,2442,1229],{"class":1088},[1050,2444,2445],{"class":1270},"0.5",[1050,2447,1614],{"class":1088},[1050,2449,2451,2453,2456,2459,2463,2465,2467,2469,2471,2473,2475,2477,2479,2481,2484,2486,2488,2491],{"class":1052,"line":2450},85,[1050,2452,1283],{"class":1063},[1050,2454,2455],{"class":1218}," f",[1050,2457,2458],{"class":1296},"\"Processed: ",[1050,2460,2462],{"class":2461},"s3h35","{",[1050,2464,2119],{"class":1067},[1050,2466,1089],{"class":1088},[1050,2468,2049],{"class":1264},[1050,2470,1229],{"class":1088},[1050,2472,1293],{"class":1292},[1050,2474,1297],{"class":1296},[1050,2476,1293],{"class":1292},[1050,2478,1202],{"class":1088},[1050,2480,1305],{"class":1292},[1050,2482,2483],{"class":1296},"No message",[1050,2485,1293],{"class":1292},[1050,2487,1274],{"class":1088},[1050,2489,2490],{"class":2461},"}",[1050,2492,2493],{"class":1296},"\"\n",[1035,2495,2497],{"id":2496},"class-based-async-views","Class-Based Async Views",[1040,2499,2501],{"className":1042,"code":2500,"language":1044,"meta":1045,"style":1045},"# views.py\nfrom django.views import View\nfrom django.http import JsonResponse\nfrom django.utils.decorators import method_decorator\nfrom django.views.decorators.csrf import csrf_exempt\nimport asyncio\nimport json\n\nclass AsyncView(View):\n    \"\"\"Base class for async views.\"\"\"\n    \n    async def dispatch(self, request, *args, **kwargs):\n        \"\"\"Async dispatch method.\"\"\"\n        handler = getattr(self, request.method.lower(), self.http_method_not_allowed)\n        \n        if asyncio.iscoroutinefunction(handler):\n            return await handler(request, *args, **kwargs)\n        else:\n            # Handle sync methods\n            return handler(request, *args, **kwargs)\n\nclass AsyncPostListView(AsyncView):\n    \"\"\"Async class-based view for post listing.\"\"\"\n    \n    async def get(self, request):\n        \"\"\"Handle GET requests asynchronously.\"\"\"\n        page = int(request.GET.get('page', 1))\n        limit = int(request.GET.get('limit', 10))\n        \n        # Calculate offset\n        offset = (page - 1) * limit\n        \n        # Fetch posts asynchronously\n        posts = []\n        queryset = Post.objects.filter(published=True)[offset:offset + limit]\n        \n        async for post in queryset:\n            posts.append({\n                'id': post.id,\n                'title': post.title,\n                'slug': post.slug,\n                'created_at': post.created_at.isoformat()\n            })\n        \n        # Get total count asynchronously\n        total_count = await Post.objects.filter(published=True).acount()\n        \n        return JsonResponse({\n            'posts': posts,\n            'pagination': {\n                'page': page,\n                'limit': limit,\n                'total': total_count,\n                'has_next': offset + limit \u003C total_count\n            }\n        })\n\n@method_decorator(csrf_exempt, name='dispatch')\nclass AsyncAPIView(AsyncView):\n    \"\"\"Generic async API view.\"\"\"\n    \n    async def get(self, request, *args, **kwargs):\n        \"\"\"Handle GET requests.\"\"\"\n        return await self.list(request, *args, **kwargs)\n    \n    async def post(self, request, *args, **kwargs):\n        \"\"\"Handle POST requests.\"\"\"\n        return await self.create(request, *args, **kwargs)\n    \n    async def put(self, request, *args, **kwargs):\n        \"\"\"Handle PUT requests.\"\"\"\n        return await self.update(request, *args, **kwargs)\n    \n    async def delete(self, request, *args, **kwargs):\n        \"\"\"Handle DELETE requests.\"\"\"\n        return await self.destroy(request, *args, **kwargs)\n    \n    async def list(self, request, *args, **kwargs):\n        \"\"\"List resources.\"\"\"\n        return JsonResponse({'message': 'List method not implemented'})\n    \n    async def create(self, request, *args, **kwargs):\n        \"\"\"Create resource.\"\"\"\n        try:\n            body = await request.aread()\n            data = json.loads(body)\n            \n            # Validate and create resource\n            result = await self.perform_create(data)\n            \n            return JsonResponse(result, status=201)\n        \n        except json.JSONDecodeError:\n            return JsonResponse({'error': 'Invalid JSON'}, status=400)\n        except Exception as e:\n            return JsonResponse({'error': str(e)}, status=500)\n    \n    async def update(self, request, *args, **kwargs):\n        \"\"\"Update resource.\"\"\"\n        try:\n            body = await request.aread()\n            data = json.loads(body)\n            \n            result = await self.perform_update(data, *args, **kwargs)\n            \n            return JsonResponse(result)\n        \n        except json.JSONDecodeError:\n            return JsonResponse({'error': 'Invalid JSON'}, status=400)\n        except Exception as e:\n            return JsonResponse({'error': str(e)}, status=500)\n    \n    async def destroy(self, request, *args, **kwargs):\n        \"\"\"Delete resource.\"\"\"\n        try:\n            await self.perform_destroy(*args, **kwargs)\n            return JsonResponse({'message': 'Resource deleted'}, status=204)\n        \n        except Exception as e:\n            return JsonResponse({'error': str(e)}, status=500)\n    \n    async def perform_create(self, data):\n        \"\"\"Override in subclasses.\"\"\"\n        raise NotImplementedError\n    \n    async def perform_update(self, data, *args, **kwargs):\n        \"\"\"Override in subclasses.\"\"\"\n        raise NotImplementedError\n    \n    async def perform_destroy(self, *args, **kwargs):\n        \"\"\"Override in subclasses.\"\"\"\n        raise NotImplementedError\n\nclass PostAPIView(AsyncAPIView):\n    \"\"\"Async API view for posts.\"\"\"\n    \n    async def list(self, request):\n        \"\"\"List posts asynchronously.\"\"\"\n        posts = []\n        async for post in Post.objects.filter(published=True):\n            posts.append({\n                'id': post.id,\n                'title': post.title,\n                'slug': post.slug\n            })\n        \n        return JsonResponse({'posts': posts})\n    \n    async def perform_create(self, data):\n        \"\"\"Create post asynchronously.\"\"\"\n        # Note: Django's async ORM support is limited\n        # Use sync_to_async for complex operations\n        from asgiref.sync import sync_to_async\n        \n        @sync_to_async\n        def create_post():\n            return Post.objects.create(\n                title=data['title'],\n                content=data['content'],\n                published=data.get('published', False)\n            )\n        \n        post = await create_post()\n        \n        return {\n            'id': post.id,\n            'title': post.title,\n            'slug': post.slug\n        }\n    \n    async def perform_update(self, data, post_id):\n        \"\"\"Update post asynchronously.\"\"\"\n        from asgiref.sync import sync_to_async\n        \n        @sync_to_async\n        def update_post():\n            post = Post.objects.get(id=post_id)\n            post.title = data.get('title', post.title)\n            post.content = data.get('content', post.content)\n            post.published = data.get('published', post.published)\n            post.save()\n            return post\n        \n        post = await update_post()\n        \n        return {\n            'id': post.id,\n            'title': post.title,\n            'slug': post.slug\n        }\n    \n    async def perform_destroy(self, post_id):\n        \"\"\"Delete post asynchronously.\"\"\"\n        from asgiref.sync import sync_to_async\n        \n        @sync_to_async\n        def delete_post():\n            post = Post.objects.get(id=post_id)\n            post.delete()\n        \n        await delete_post()\n",[1047,2502,2503,2507,2523,2537,2558,2580,2586,2592,2596,2613,2622,2626,2663,2673,2714,2718,2737,2764,2771,2776,2800,2804,2818,2827,2831,2850,2859,2899,2936,2940,2945,2970,2974,2979,2988,3033,3037,3052,3063,3082,3100,3119,3141,3146,3150,3155,3190,3194,3202,3216,3230,3245,3259,3275,3300,3305,3309,3313,3341,3354,3363,3367,3397,3406,3437,3441,3471,3480,3511,3515,3546,3555,3586,3590,3621,3630,3661,3665,3695,3704,3729,3733,3764,3773,3779,3795,3814,3819,3825,3847,3852,3874,3879,3892,3925,3940,3977,3982,4014,4024,4031,4048,4067,4072,4106,4111,4124,4129,4142,4175,4188,4221,4226,4258,4268,4275,4303,4338,4343,4356,4389,4394,4415,4425,4434,4439,4471,4480,4487,4492,4520,4529,4536,4541,4556,4566,4571,4590,4600,4609,4640,4651,4670,4689,4707,4712,4717,4738,4743,4762,4772,4778,4784,4800,4805,4814,4826,4844,4866,4886,4915,4921,4926,4939,4944,4951,4970,4989,5006,5012,5017,5040,5050,5065,5070,5077,5087,5115,5152,5187,5222,5234,5242,5247,5260,5265,5272,5291,5310,5327,5332,5337,5356,5366,5381,5386,5393,5403,5430,5442,5447],{"__ignoreMap":1045},[1050,2504,2505],{"class":1052,"line":1053},[1050,2506,1057],{"class":1056},[1050,2508,2509,2511,2513,2515,2518,2520],{"class":1052,"line":1060},[1050,2510,1082],{"class":1063},[1050,2512,1085],{"class":1067},[1050,2514,1089],{"class":1088},[1050,2516,2517],{"class":1067},"views ",[1050,2519,1064],{"class":1063},[1050,2521,2522],{"class":1067}," View\n",[1050,2524,2525,2527,2529,2531,2533,2535],{"class":1052,"line":1071},[1050,2526,1082],{"class":1063},[1050,2528,1085],{"class":1067},[1050,2530,1089],{"class":1088},[1050,2532,1092],{"class":1067},[1050,2534,1064],{"class":1063},[1050,2536,1097],{"class":1067},[1050,2538,2539,2541,2543,2545,2548,2550,2553,2555],{"class":1052,"line":1079},[1050,2540,1082],{"class":1063},[1050,2542,1085],{"class":1067},[1050,2544,1089],{"class":1088},[1050,2546,2547],{"class":1067},"utils",[1050,2549,1089],{"class":1088},[1050,2551,2552],{"class":1067},"decorators ",[1050,2554,1064],{"class":1063},[1050,2556,2557],{"class":1067}," method_decorator\n",[1050,2559,2560,2562,2564,2566,2568,2570,2572,2574,2576,2578],{"class":1052,"line":1100},[1050,2561,1082],{"class":1063},[1050,2563,1085],{"class":1067},[1050,2565,1089],{"class":1088},[1050,2567,1126],{"class":1067},[1050,2569,1089],{"class":1088},[1050,2571,1131],{"class":1067},[1050,2573,1089],{"class":1088},[1050,2575,1160],{"class":1067},[1050,2577,1064],{"class":1063},[1050,2579,1165],{"class":1067},[1050,2581,2582,2584],{"class":1052,"line":1117},[1050,2583,1064],{"class":1063},[1050,2585,1068],{"class":1067},[1050,2587,2588,2590],{"class":1052,"line":1143},[1050,2589,1064],{"class":1063},[1050,2591,2206],{"class":1067},[1050,2593,2594],{"class":1052,"line":1168},[1050,2595,1212],{"emptyLinePlaceholder":1211},[1050,2597,2598,2601,2605,2607,2611],{"class":1052,"line":1186},[1050,2599,2600],{"class":1218},"class",[1050,2602,2604],{"class":2603},"sD-vU"," AsyncView",[1050,2606,1229],{"class":1088},[1050,2608,2610],{"class":2609},"sYn-s","View",[1050,2612,1236],{"class":1088},[1050,2614,2615,2617,2620],{"class":1052,"line":1208},[1050,2616,1243],{"class":1242},[1050,2618,2619],{"class":1246},"Base class for async views.",[1050,2621,1250],{"class":1242},[1050,2623,2624],{"class":1052,"line":1215},[1050,2625,1499],{"class":1067},[1050,2627,2628,2630,2632,2635,2637,2641,2643,2645,2647,2650,2653,2655,2658,2661],{"class":1052,"line":1239},[1050,2629,1368],{"class":1218},[1050,2631,1222],{"class":1218},[1050,2633,2634],{"class":1225}," dispatch",[1050,2636,1229],{"class":1088},[1050,2638,2640],{"class":2639},"sRjD_","self",[1050,2642,1202],{"class":1088},[1050,2644,1983],{"class":1232},[1050,2646,1202],{"class":1088},[1050,2648,2649],{"class":1991}," *",[1050,2651,2652],{"class":1232},"args",[1050,2654,1202],{"class":1088},[1050,2656,2657],{"class":1991}," **",[1050,2659,2660],{"class":1232},"kwargs",[1050,2662,1236],{"class":1088},[1050,2664,2665,2668,2671],{"class":1052,"line":1253},[1050,2666,2667],{"class":1242},"        \"\"\"",[1050,2669,2670],{"class":1246},"Async dispatch method.",[1050,2672,1250],{"class":1242},[1050,2674,2675,2678,2680,2683,2685,2688,2690,2692,2694,2696,2698,2701,2704,2707,2709,2712],{"class":1052,"line":1280},[1050,2676,2677],{"class":1067},"        handler ",[1050,2679,1359],{"class":1088},[1050,2681,2682],{"class":1840}," getattr",[1050,2684,1229],{"class":1088},[1050,2686,2640],{"class":2687},"se3Ec",[1050,2689,1202],{"class":1088},[1050,2691,1983],{"class":1264},[1050,2693,1089],{"class":1088},[1050,2695,1988],{"class":1384},[1050,2697,1089],{"class":1088},[1050,2699,2700],{"class":1264},"lower",[1050,2702,2703],{"class":1088},"(),",[1050,2705,2706],{"class":2687}," self",[1050,2708,1089],{"class":1088},[1050,2710,2711],{"class":1384},"http_method_not_allowed",[1050,2713,1614],{"class":1088},[1050,2715,2716],{"class":1052,"line":1316},[1050,2717,1620],{"class":1067},[1050,2719,2720,2723,2725,2727,2730,2732,2735],{"class":1052,"line":1321},[1050,2721,2722],{"class":1063},"        if",[1050,2724,1259],{"class":1067},[1050,2726,1089],{"class":1088},[1050,2728,2729],{"class":1264},"iscoroutinefunction",[1050,2731,1229],{"class":1088},[1050,2733,2734],{"class":1264},"handler",[1050,2736,1236],{"class":1088},[1050,2738,2739,2741,2743,2746,2748,2750,2752,2754,2756,2758,2760,2762],{"class":1052,"line":1337},[1050,2740,2303],{"class":1063},[1050,2742,1584],{"class":1063},[1050,2744,2745],{"class":1264}," handler",[1050,2747,1229],{"class":1088},[1050,2749,1233],{"class":1264},[1050,2751,1202],{"class":1088},[1050,2753,2649],{"class":1991},[1050,2755,2652],{"class":1264},[1050,2757,1202],{"class":1088},[1050,2759,2657],{"class":1991},[1050,2761,2660],{"class":1264},[1050,2763,1614],{"class":1088},[1050,2765,2766,2769],{"class":1052,"line":1347},[1050,2767,2768],{"class":1063},"        else",[1050,2770,1567],{"class":1088},[1050,2772,2773],{"class":1052,"line":1353},[1050,2774,2775],{"class":1056},"            # Handle sync methods\n",[1050,2777,2778,2780,2782,2784,2786,2788,2790,2792,2794,2796,2798],{"class":1052,"line":1365},[1050,2779,2303],{"class":1063},[1050,2781,2745],{"class":1264},[1050,2783,1229],{"class":1088},[1050,2785,1233],{"class":1264},[1050,2787,1202],{"class":1088},[1050,2789,2649],{"class":1991},[1050,2791,2652],{"class":1264},[1050,2793,1202],{"class":1088},[1050,2795,2657],{"class":1991},[1050,2797,2660],{"class":1264},[1050,2799,1614],{"class":1088},[1050,2801,2802],{"class":1052,"line":1407},[1050,2803,1212],{"emptyLinePlaceholder":1211},[1050,2805,2806,2808,2811,2813,2816],{"class":1052,"line":1421},[1050,2807,2600],{"class":1218},[1050,2809,2810],{"class":2603}," AsyncPostListView",[1050,2812,1229],{"class":1088},[1050,2814,2815],{"class":2609},"AsyncView",[1050,2817,1236],{"class":1088},[1050,2819,2820,2822,2825],{"class":1052,"line":1444},[1050,2821,1243],{"class":1242},[1050,2823,2824],{"class":1246},"Async class-based view for post listing.",[1050,2826,1250],{"class":1242},[1050,2828,2829],{"class":1052,"line":1464},[1050,2830,1499],{"class":1067},[1050,2832,2833,2835,2837,2840,2842,2844,2846,2848],{"class":1052,"line":1490},[1050,2834,1368],{"class":1218},[1050,2836,1222],{"class":1218},[1050,2838,2839],{"class":1225}," get",[1050,2841,1229],{"class":1088},[1050,2843,2640],{"class":2639},[1050,2845,1202],{"class":1088},[1050,2847,1983],{"class":1232},[1050,2849,1236],{"class":1088},[1050,2851,2852,2854,2857],{"class":1052,"line":1496},[1050,2853,2667],{"class":1242},[1050,2855,2856],{"class":1246},"Handle GET requests asynchronously.",[1050,2858,1250],{"class":1242},[1050,2860,2861,2864,2866,2869,2871,2873,2875,2878,2880,2882,2884,2886,2889,2891,2893,2896],{"class":1052,"line":1502},[1050,2862,2863],{"class":1067},"        page ",[1050,2865,1359],{"class":1088},[1050,2867,2868],{"class":1673}," int",[1050,2870,1229],{"class":1088},[1050,2872,1233],{"class":1264},[1050,2874,1089],{"class":1088},[1050,2876,1933],{"class":2877},"sFGJz",[1050,2879,1089],{"class":1088},[1050,2881,2049],{"class":1264},[1050,2883,1229],{"class":1088},[1050,2885,1293],{"class":1292},[1050,2887,2888],{"class":1296},"page",[1050,2890,1293],{"class":1292},[1050,2892,1202],{"class":1088},[1050,2894,2895],{"class":1270}," 1",[1050,2897,2898],{"class":1088},"))\n",[1050,2900,2901,2904,2906,2908,2910,2912,2914,2916,2918,2920,2922,2924,2927,2929,2931,2934],{"class":1052,"line":1525},[1050,2902,2903],{"class":1067},"        limit ",[1050,2905,1359],{"class":1088},[1050,2907,2868],{"class":1673},[1050,2909,1229],{"class":1088},[1050,2911,1233],{"class":1264},[1050,2913,1089],{"class":1088},[1050,2915,1933],{"class":2877},[1050,2917,1089],{"class":1088},[1050,2919,2049],{"class":1264},[1050,2921,1229],{"class":1088},[1050,2923,1293],{"class":1292},[1050,2925,2926],{"class":1296},"limit",[1050,2928,1293],{"class":1292},[1050,2930,1202],{"class":1088},[1050,2932,2933],{"class":1270}," 10",[1050,2935,2898],{"class":1088},[1050,2937,2938],{"class":1052,"line":1530},[1050,2939,1620],{"class":1067},[1050,2941,2942],{"class":1052,"line":1551},[1050,2943,2944],{"class":1056},"        # Calculate offset\n",[1050,2946,2947,2950,2952,2955,2958,2961,2963,2965,2967],{"class":1052,"line":1561},[1050,2948,2949],{"class":1067},"        offset ",[1050,2951,1359],{"class":1088},[1050,2953,2954],{"class":1088}," (",[1050,2956,2957],{"class":1067},"page ",[1050,2959,2960],{"class":1991},"-",[1050,2962,2895],{"class":1270},[1050,2964,1274],{"class":1088},[1050,2966,2649],{"class":1991},[1050,2968,2969],{"class":1067}," limit\n",[1050,2971,2972],{"class":1052,"line":1570},[1050,2973,1620],{"class":1067},[1050,2975,2976],{"class":1052,"line":1576},[1050,2977,2978],{"class":1056},"        # Fetch posts asynchronously\n",[1050,2980,2981,2984,2986],{"class":1052,"line":1617},[1050,2982,2983],{"class":1067},"        posts ",[1050,2985,1359],{"class":1088},[1050,2987,1362],{"class":1088},[1050,2989,2990,2993,2995,2997,2999,3001,3003,3005,3007,3009,3011,3013,3016,3019,3021,3024,3027,3030],{"class":1052,"line":1623},[1050,2991,2992],{"class":1067},"        queryset ",[1050,2994,1359],{"class":1088},[1050,2996,1199],{"class":1067},[1050,2998,1089],{"class":1088},[1050,3000,1385],{"class":1384},[1050,3002,1089],{"class":1088},[1050,3004,1390],{"class":1264},[1050,3006,1229],{"class":1088},[1050,3008,1396],{"class":1395},[1050,3010,1359],{"class":1088},[1050,3012,1402],{"class":1401},[1050,3014,3015],{"class":1088},")[",[1050,3017,3018],{"class":1067},"offset",[1050,3020,1302],{"class":1088},[1050,3022,3023],{"class":1067},"offset ",[1050,3025,3026],{"class":1991},"+",[1050,3028,3029],{"class":1067}," limit",[1050,3031,3032],{"class":1088},"]\n",[1050,3034,3035],{"class":1052,"line":1629},[1050,3036,1620],{"class":1067},[1050,3038,3039,3041,3043,3045,3047,3050],{"class":1052,"line":1657},[1050,3040,2012],{"class":1063},[1050,3042,1371],{"class":1063},[1050,3044,1374],{"class":1067},[1050,3046,1377],{"class":1063},[1050,3048,3049],{"class":1067}," queryset",[1050,3051,1567],{"class":1088},[1050,3053,3054,3057,3059,3061],{"class":1052,"line":1695},[1050,3055,3056],{"class":1067},"            posts",[1050,3058,1089],{"class":1088},[1050,3060,1415],{"class":1264},[1050,3062,1418],{"class":1088},[1050,3064,3065,3068,3070,3072,3074,3076,3078,3080],{"class":1052,"line":1700},[1050,3066,3067],{"class":1292},"                '",[1050,3069,1427],{"class":1296},[1050,3071,1293],{"class":1292},[1050,3073,1302],{"class":1088},[1050,3075,1434],{"class":1264},[1050,3077,1089],{"class":1088},[1050,3079,1427],{"class":1384},[1050,3081,1441],{"class":1088},[1050,3083,3084,3086,3088,3090,3092,3094,3096,3098],{"class":1052,"line":1734},[1050,3085,3067],{"class":1292},[1050,3087,1449],{"class":1296},[1050,3089,1293],{"class":1292},[1050,3091,1302],{"class":1088},[1050,3093,1434],{"class":1264},[1050,3095,1089],{"class":1088},[1050,3097,1449],{"class":1384},[1050,3099,1441],{"class":1088},[1050,3101,3102,3104,3107,3109,3111,3113,3115,3117],{"class":1052,"line":1739},[1050,3103,3067],{"class":1292},[1050,3105,3106],{"class":1296},"slug",[1050,3108,1293],{"class":1292},[1050,3110,1302],{"class":1088},[1050,3112,1434],{"class":1264},[1050,3114,1089],{"class":1088},[1050,3116,3106],{"class":1384},[1050,3118,1441],{"class":1088},[1050,3120,3121,3123,3125,3127,3129,3131,3133,3135,3137,3139],{"class":1052,"line":1749},[1050,3122,3067],{"class":1292},[1050,3124,1469],{"class":1296},[1050,3126,1293],{"class":1292},[1050,3128,1302],{"class":1088},[1050,3130,1434],{"class":1264},[1050,3132,1089],{"class":1088},[1050,3134,1469],{"class":1384},[1050,3136,1089],{"class":1088},[1050,3138,1484],{"class":1264},[1050,3140,1487],{"class":1088},[1050,3142,3143],{"class":1052,"line":1768},[1050,3144,3145],{"class":1088},"            })\n",[1050,3147,3148],{"class":1052,"line":1787},[1050,3149,1620],{"class":1067},[1050,3151,3152],{"class":1052,"line":1807},[1050,3153,3154],{"class":1056},"        # Get total count asynchronously\n",[1050,3156,3157,3160,3162,3164,3166,3168,3170,3172,3174,3176,3178,3180,3182,3185,3188],{"class":1052,"line":1828},[1050,3158,3159],{"class":1067},"        total_count ",[1050,3161,1359],{"class":1088},[1050,3163,1584],{"class":1063},[1050,3165,1199],{"class":1067},[1050,3167,1089],{"class":1088},[1050,3169,1385],{"class":1384},[1050,3171,1089],{"class":1088},[1050,3173,1390],{"class":1264},[1050,3175,1229],{"class":1088},[1050,3177,1396],{"class":1395},[1050,3179,1359],{"class":1088},[1050,3181,1402],{"class":1401},[1050,3183,3184],{"class":1088},").",[1050,3186,3187],{"class":1264},"acount",[1050,3189,1487],{"class":1088},[1050,3191,3192],{"class":1052,"line":1850},[1050,3193,1620],{"class":1067},[1050,3195,3196,3198,3200],{"class":1052,"line":1855},[1050,3197,1742],{"class":1063},[1050,3199,1286],{"class":1264},[1050,3201,1418],{"class":1088},[1050,3203,3204,3206,3208,3210,3212,3214],{"class":1052,"line":1860},[1050,3205,1424],{"class":1292},[1050,3207,1513],{"class":1296},[1050,3209,1293],{"class":1292},[1050,3211,1302],{"class":1088},[1050,3213,1520],{"class":1264},[1050,3215,1441],{"class":1088},[1050,3217,3218,3220,3223,3225,3227],{"class":1052,"line":1875},[1050,3219,1424],{"class":1292},[1050,3221,3222],{"class":1296},"pagination",[1050,3224,1293],{"class":1292},[1050,3226,1302],{"class":1088},[1050,3228,3229],{"class":1088}," {\n",[1050,3231,3232,3234,3236,3238,3240,3243],{"class":1052,"line":1913},[1050,3233,3067],{"class":1292},[1050,3235,2888],{"class":1296},[1050,3237,1293],{"class":1292},[1050,3239,1302],{"class":1088},[1050,3241,3242],{"class":1264}," page",[1050,3244,1441],{"class":1088},[1050,3246,3247,3249,3251,3253,3255,3257],{"class":1052,"line":1918},[1050,3248,3067],{"class":1292},[1050,3250,2926],{"class":1296},[1050,3252,1293],{"class":1292},[1050,3254,1302],{"class":1088},[1050,3256,3029],{"class":1264},[1050,3258,1441],{"class":1088},[1050,3260,3261,3263,3266,3268,3270,3273],{"class":1052,"line":1951},[1050,3262,3067],{"class":1292},[1050,3264,3265],{"class":1296},"total",[1050,3267,1293],{"class":1292},[1050,3269,1302],{"class":1088},[1050,3271,3272],{"class":1264}," total_count",[1050,3274,1441],{"class":1088},[1050,3276,3277,3279,3282,3284,3286,3289,3291,3294,3297],{"class":1052,"line":1967},[1050,3278,3067],{"class":1292},[1050,3280,3281],{"class":1296},"has_next",[1050,3283,1293],{"class":1292},[1050,3285,1302],{"class":1088},[1050,3287,3288],{"class":1264}," offset ",[1050,3290,3026],{"class":1991},[1050,3292,3293],{"class":1264}," limit ",[1050,3295,3296],{"class":1991},"\u003C",[1050,3298,3299],{"class":1264}," total_count\n",[1050,3301,3302],{"class":1052,"line":1977},[1050,3303,3304],{"class":1088},"            }\n",[1050,3306,3307],{"class":1052,"line":2003},[1050,3308,1493],{"class":1088},[1050,3310,3311],{"class":1052,"line":2009},[1050,3312,1212],{"emptyLinePlaceholder":1211},[1050,3314,3315,3317,3320,3322,3325,3327,3330,3332,3334,3337,3339],{"class":1052,"line":2037},[1050,3316,1921],{"class":1088},[1050,3318,3319],{"class":1225},"method_decorator",[1050,3321,1229],{"class":1088},[1050,3323,3324],{"class":1264},"csrf_exempt",[1050,3326,1202],{"class":1088},[1050,3328,3329],{"class":1395}," name",[1050,3331,1359],{"class":1088},[1050,3333,1293],{"class":1292},[1050,3335,3336],{"class":1296},"dispatch",[1050,3338,1293],{"class":1292},[1050,3340,1614],{"class":1088},[1050,3342,3343,3345,3348,3350,3352],{"class":1052,"line":2070},[1050,3344,2600],{"class":1218},[1050,3346,3347],{"class":2603}," AsyncAPIView",[1050,3349,1229],{"class":1088},[1050,3351,2815],{"class":2609},[1050,3353,1236],{"class":1088},[1050,3355,3356,3358,3361],{"class":1052,"line":2090},[1050,3357,1243],{"class":1242},[1050,3359,3360],{"class":1246},"Generic async API view.",[1050,3362,1250],{"class":1242},[1050,3364,3365],{"class":1052,"line":2109},[1050,3366,1499],{"class":1067},[1050,3368,3369,3371,3373,3375,3377,3379,3381,3383,3385,3387,3389,3391,3393,3395],{"class":1052,"line":2124},[1050,3370,1368],{"class":1218},[1050,3372,1222],{"class":1218},[1050,3374,2839],{"class":1225},[1050,3376,1229],{"class":1088},[1050,3378,2640],{"class":2639},[1050,3380,1202],{"class":1088},[1050,3382,1983],{"class":1232},[1050,3384,1202],{"class":1088},[1050,3386,2649],{"class":1991},[1050,3388,2652],{"class":1232},[1050,3390,1202],{"class":1088},[1050,3392,2657],{"class":1991},[1050,3394,2660],{"class":1232},[1050,3396,1236],{"class":1088},[1050,3398,3399,3401,3404],{"class":1052,"line":2132},[1050,3400,2667],{"class":1242},[1050,3402,3403],{"class":1246},"Handle GET requests.",[1050,3405,1250],{"class":1242},[1050,3407,3408,3410,3412,3414,3416,3419,3421,3423,3425,3427,3429,3431,3433,3435],{"class":1052,"line":2167},[1050,3409,1742],{"class":1063},[1050,3411,1584],{"class":1063},[1050,3413,2706],{"class":2687},[1050,3415,1089],{"class":1088},[1050,3417,3418],{"class":1264},"list",[1050,3420,1229],{"class":1088},[1050,3422,1233],{"class":1264},[1050,3424,1202],{"class":1088},[1050,3426,2649],{"class":1991},[1050,3428,2652],{"class":1264},[1050,3430,1202],{"class":1088},[1050,3432,2657],{"class":1991},[1050,3434,2660],{"class":1264},[1050,3436,1614],{"class":1088},[1050,3438,3439],{"class":1052,"line":2172},[1050,3440,1499],{"class":1067},[1050,3442,3443,3445,3447,3449,3451,3453,3455,3457,3459,3461,3463,3465,3467,3469],{"class":1052,"line":2194},[1050,3444,1368],{"class":1218},[1050,3446,1222],{"class":1218},[1050,3448,1434],{"class":1225},[1050,3450,1229],{"class":1088},[1050,3452,2640],{"class":2639},[1050,3454,1202],{"class":1088},[1050,3456,1983],{"class":1232},[1050,3458,1202],{"class":1088},[1050,3460,2649],{"class":1991},[1050,3462,2652],{"class":1232},[1050,3464,1202],{"class":1088},[1050,3466,2657],{"class":1991},[1050,3468,2660],{"class":1232},[1050,3470,1236],{"class":1088},[1050,3472,3473,3475,3478],{"class":1052,"line":2200},[1050,3474,2667],{"class":1242},[1050,3476,3477],{"class":1246},"Handle POST requests.",[1050,3479,1250],{"class":1242},[1050,3481,3482,3484,3486,3488,3490,3493,3495,3497,3499,3501,3503,3505,3507,3509],{"class":1052,"line":2209},[1050,3483,1742],{"class":1063},[1050,3485,1584],{"class":1063},[1050,3487,2706],{"class":2687},[1050,3489,1089],{"class":1088},[1050,3491,3492],{"class":1264},"create",[1050,3494,1229],{"class":1088},[1050,3496,1233],{"class":1264},[1050,3498,1202],{"class":1088},[1050,3500,2649],{"class":1991},[1050,3502,2652],{"class":1264},[1050,3504,1202],{"class":1088},[1050,3506,2657],{"class":1991},[1050,3508,2660],{"class":1264},[1050,3510,1614],{"class":1088},[1050,3512,3513],{"class":1052,"line":2214},[1050,3514,1499],{"class":1067},[1050,3516,3517,3519,3521,3524,3526,3528,3530,3532,3534,3536,3538,3540,3542,3544],{"class":1052,"line":2222},[1050,3518,1368],{"class":1218},[1050,3520,1222],{"class":1218},[1050,3522,3523],{"class":1225}," put",[1050,3525,1229],{"class":1088},[1050,3527,2640],{"class":2639},[1050,3529,1202],{"class":1088},[1050,3531,1983],{"class":1232},[1050,3533,1202],{"class":1088},[1050,3535,2649],{"class":1991},[1050,3537,2652],{"class":1232},[1050,3539,1202],{"class":1088},[1050,3541,2657],{"class":1991},[1050,3543,2660],{"class":1232},[1050,3545,1236],{"class":1088},[1050,3547,3548,3550,3553],{"class":1052,"line":2241},[1050,3549,2667],{"class":1242},[1050,3551,3552],{"class":1246},"Handle PUT requests.",[1050,3554,1250],{"class":1242},[1050,3556,3557,3559,3561,3563,3565,3568,3570,3572,3574,3576,3578,3580,3582,3584],{"class":1052,"line":2264},[1050,3558,1742],{"class":1063},[1050,3560,1584],{"class":1063},[1050,3562,2706],{"class":2687},[1050,3564,1089],{"class":1088},[1050,3566,3567],{"class":1264},"update",[1050,3569,1229],{"class":1088},[1050,3571,1233],{"class":1264},[1050,3573,1202],{"class":1088},[1050,3575,2649],{"class":1991},[1050,3577,2652],{"class":1264},[1050,3579,1202],{"class":1088},[1050,3581,2657],{"class":1991},[1050,3583,2660],{"class":1264},[1050,3585,1614],{"class":1088},[1050,3587,3588],{"class":1052,"line":2270},[1050,3589,1499],{"class":1067},[1050,3591,3592,3594,3596,3599,3601,3603,3605,3607,3609,3611,3613,3615,3617,3619],{"class":1052,"line":2276},[1050,3593,1368],{"class":1218},[1050,3595,1222],{"class":1218},[1050,3597,3598],{"class":1225}," delete",[1050,3600,1229],{"class":1088},[1050,3602,2640],{"class":2639},[1050,3604,1202],{"class":1088},[1050,3606,1983],{"class":1232},[1050,3608,1202],{"class":1088},[1050,3610,2649],{"class":1991},[1050,3612,2652],{"class":1232},[1050,3614,1202],{"class":1088},[1050,3616,2657],{"class":1991},[1050,3618,2660],{"class":1232},[1050,3620,1236],{"class":1088},[1050,3622,3623,3625,3628],{"class":1052,"line":2295},[1050,3624,2667],{"class":1242},[1050,3626,3627],{"class":1246},"Handle DELETE requests.",[1050,3629,1250],{"class":1242},[1050,3631,3632,3634,3636,3638,3640,3643,3645,3647,3649,3651,3653,3655,3657,3659],{"class":1052,"line":2300},[1050,3633,1742],{"class":1063},[1050,3635,1584],{"class":1063},[1050,3637,2706],{"class":2687},[1050,3639,1089],{"class":1088},[1050,3641,3642],{"class":1264},"destroy",[1050,3644,1229],{"class":1088},[1050,3646,1233],{"class":1264},[1050,3648,1202],{"class":1088},[1050,3650,2649],{"class":1991},[1050,3652,2652],{"class":1264},[1050,3654,1202],{"class":1088},[1050,3656,2657],{"class":1991},[1050,3658,2660],{"class":1264},[1050,3660,1614],{"class":1088},[1050,3662,3663],{"class":1052,"line":2341},[1050,3664,1499],{"class":1067},[1050,3666,3667,3669,3671,3673,3675,3677,3679,3681,3683,3685,3687,3689,3691,3693],{"class":1052,"line":2346},[1050,3668,1368],{"class":1218},[1050,3670,1222],{"class":1218},[1050,3672,1674],{"class":1673},[1050,3674,1229],{"class":1088},[1050,3676,2640],{"class":2639},[1050,3678,1202],{"class":1088},[1050,3680,1983],{"class":1232},[1050,3682,1202],{"class":1088},[1050,3684,2649],{"class":1991},[1050,3686,2652],{"class":1232},[1050,3688,1202],{"class":1088},[1050,3690,2657],{"class":1991},[1050,3692,2660],{"class":1232},[1050,3694,1236],{"class":1088},[1050,3696,3697,3699,3702],{"class":1052,"line":2361},[1050,3698,2667],{"class":1242},[1050,3700,3701],{"class":1246},"List resources.",[1050,3703,1250],{"class":1242},[1050,3705,3706,3708,3710,3712,3714,3716,3718,3720,3722,3725,3727],{"class":1052,"line":2396},[1050,3707,1742],{"class":1063},[1050,3709,1286],{"class":1264},[1050,3711,1289],{"class":1088},[1050,3713,1293],{"class":1292},[1050,3715,1297],{"class":1296},[1050,3717,1293],{"class":1292},[1050,3719,1302],{"class":1088},[1050,3721,1305],{"class":1292},[1050,3723,3724],{"class":1296},"List method not implemented",[1050,3726,1293],{"class":1292},[1050,3728,1313],{"class":1088},[1050,3730,3731],{"class":1052,"line":2401},[1050,3732,1499],{"class":1067},[1050,3734,3735,3737,3739,3742,3744,3746,3748,3750,3752,3754,3756,3758,3760,3762],{"class":1052,"line":2416},[1050,3736,1368],{"class":1218},[1050,3738,1222],{"class":1218},[1050,3740,3741],{"class":1225}," create",[1050,3743,1229],{"class":1088},[1050,3745,2640],{"class":2639},[1050,3747,1202],{"class":1088},[1050,3749,1983],{"class":1232},[1050,3751,1202],{"class":1088},[1050,3753,2649],{"class":1991},[1050,3755,2652],{"class":1232},[1050,3757,1202],{"class":1088},[1050,3759,2657],{"class":1991},[1050,3761,2660],{"class":1232},[1050,3763,1236],{"class":1088},[1050,3765,3766,3768,3771],{"class":1052,"line":2426},[1050,3767,2667],{"class":1242},[1050,3769,3770],{"class":1246},"Create resource.",[1050,3772,1250],{"class":1242},[1050,3774,3775,3777],{"class":1052,"line":2432},[1050,3776,2217],{"class":1063},[1050,3778,1567],{"class":1088},[1050,3780,3781,3783,3785,3787,3789,3791,3793],{"class":1052,"line":2450},[1050,3782,2225],{"class":1067},[1050,3784,1359],{"class":1088},[1050,3786,1584],{"class":1063},[1050,3788,1983],{"class":1067},[1050,3790,1089],{"class":1088},[1050,3792,2236],{"class":1264},[1050,3794,1487],{"class":1088},[1050,3796,3798,3800,3802,3804,3806,3808,3810,3812],{"class":1052,"line":3797},86,[1050,3799,2244],{"class":1067},[1050,3801,1359],{"class":1088},[1050,3803,2249],{"class":1067},[1050,3805,1089],{"class":1088},[1050,3807,2254],{"class":1264},[1050,3809,1229],{"class":1088},[1050,3811,2259],{"class":1264},[1050,3813,1614],{"class":1088},[1050,3815,3817],{"class":1052,"line":3816},87,[1050,3818,2267],{"class":1067},[1050,3820,3822],{"class":1052,"line":3821},88,[1050,3823,3824],{"class":1056},"            # Validate and create resource\n",[1050,3826,3828,3830,3832,3834,3836,3838,3841,3843,3845],{"class":1052,"line":3827},89,[1050,3829,2279],{"class":1067},[1050,3831,1359],{"class":1088},[1050,3833,1584],{"class":1063},[1050,3835,2706],{"class":2687},[1050,3837,1089],{"class":1088},[1050,3839,3840],{"class":1264},"perform_create",[1050,3842,1229],{"class":1088},[1050,3844,2119],{"class":1264},[1050,3846,1614],{"class":1088},[1050,3848,3850],{"class":1052,"line":3849},90,[1050,3851,2267],{"class":1067},[1050,3853,3855,3857,3859,3861,3863,3865,3867,3869,3872],{"class":1052,"line":3854},91,[1050,3856,2303],{"class":1063},[1050,3858,1286],{"class":1264},[1050,3860,1229],{"class":1088},[1050,3862,2312],{"class":1264},[1050,3864,1202],{"class":1088},[1050,3866,1903],{"class":1395},[1050,3868,1359],{"class":1088},[1050,3870,3871],{"class":1270},"201",[1050,3873,1614],{"class":1088},[1050,3875,3877],{"class":1052,"line":3876},92,[1050,3878,1620],{"class":1067},[1050,3880,3882,3884,3886,3888,3890],{"class":1052,"line":3881},93,[1050,3883,2349],{"class":1063},[1050,3885,2249],{"class":1067},[1050,3887,1089],{"class":1088},[1050,3889,2356],{"class":1384},[1050,3891,1567],{"class":1088},[1050,3893,3895,3897,3899,3901,3903,3905,3907,3909,3911,3913,3915,3917,3919,3921,3923],{"class":1052,"line":3894},94,[1050,3896,2303],{"class":1063},[1050,3898,1286],{"class":1264},[1050,3900,1289],{"class":1088},[1050,3902,1293],{"class":1292},[1050,3904,1886],{"class":1296},[1050,3906,1293],{"class":1292},[1050,3908,1302],{"class":1088},[1050,3910,1305],{"class":1292},[1050,3912,2380],{"class":1296},[1050,3914,1293],{"class":1292},[1050,3916,1900],{"class":1088},[1050,3918,1903],{"class":1395},[1050,3920,1359],{"class":1088},[1050,3922,2391],{"class":1270},[1050,3924,1614],{"class":1088},[1050,3926,3928,3930,3933,3935,3938],{"class":1052,"line":3927},95,[1050,3929,2349],{"class":1063},[1050,3931,3932],{"class":1673}," Exception",[1050,3934,2029],{"class":1063},[1050,3936,3937],{"class":1067}," e",[1050,3939,1567],{"class":1088},[1050,3941,3943,3945,3947,3949,3951,3953,3955,3957,3960,3962,3965,3968,3970,3972,3975],{"class":1052,"line":3942},96,[1050,3944,2303],{"class":1063},[1050,3946,1286],{"class":1264},[1050,3948,1289],{"class":1088},[1050,3950,1293],{"class":1292},[1050,3952,1886],{"class":1296},[1050,3954,1293],{"class":1292},[1050,3956,1302],{"class":1088},[1050,3958,3959],{"class":1673}," str",[1050,3961,1229],{"class":1088},[1050,3963,3964],{"class":1264},"e",[1050,3966,3967],{"class":1088},")},",[1050,3969,1903],{"class":1395},[1050,3971,1359],{"class":1088},[1050,3973,3974],{"class":1270},"500",[1050,3976,1614],{"class":1088},[1050,3978,3980],{"class":1052,"line":3979},97,[1050,3981,1499],{"class":1067},[1050,3983,3985,3987,3989,3992,3994,3996,3998,4000,4002,4004,4006,4008,4010,4012],{"class":1052,"line":3984},98,[1050,3986,1368],{"class":1218},[1050,3988,1222],{"class":1218},[1050,3990,3991],{"class":1225}," update",[1050,3993,1229],{"class":1088},[1050,3995,2640],{"class":2639},[1050,3997,1202],{"class":1088},[1050,3999,1983],{"class":1232},[1050,4001,1202],{"class":1088},[1050,4003,2649],{"class":1991},[1050,4005,2652],{"class":1232},[1050,4007,1202],{"class":1088},[1050,4009,2657],{"class":1991},[1050,4011,2660],{"class":1232},[1050,4013,1236],{"class":1088},[1050,4015,4017,4019,4022],{"class":1052,"line":4016},99,[1050,4018,2667],{"class":1242},[1050,4020,4021],{"class":1246},"Update resource.",[1050,4023,1250],{"class":1242},[1050,4025,4027,4029],{"class":1052,"line":4026},100,[1050,4028,2217],{"class":1063},[1050,4030,1567],{"class":1088},[1050,4032,4034,4036,4038,4040,4042,4044,4046],{"class":1052,"line":4033},101,[1050,4035,2225],{"class":1067},[1050,4037,1359],{"class":1088},[1050,4039,1584],{"class":1063},[1050,4041,1983],{"class":1067},[1050,4043,1089],{"class":1088},[1050,4045,2236],{"class":1264},[1050,4047,1487],{"class":1088},[1050,4049,4051,4053,4055,4057,4059,4061,4063,4065],{"class":1052,"line":4050},102,[1050,4052,2244],{"class":1067},[1050,4054,1359],{"class":1088},[1050,4056,2249],{"class":1067},[1050,4058,1089],{"class":1088},[1050,4060,2254],{"class":1264},[1050,4062,1229],{"class":1088},[1050,4064,2259],{"class":1264},[1050,4066,1614],{"class":1088},[1050,4068,4070],{"class":1052,"line":4069},103,[1050,4071,2267],{"class":1067},[1050,4073,4075,4077,4079,4081,4083,4085,4088,4090,4092,4094,4096,4098,4100,4102,4104],{"class":1052,"line":4074},104,[1050,4076,2279],{"class":1067},[1050,4078,1359],{"class":1088},[1050,4080,1584],{"class":1063},[1050,4082,2706],{"class":2687},[1050,4084,1089],{"class":1088},[1050,4086,4087],{"class":1264},"perform_update",[1050,4089,1229],{"class":1088},[1050,4091,2119],{"class":1264},[1050,4093,1202],{"class":1088},[1050,4095,2649],{"class":1991},[1050,4097,2652],{"class":1264},[1050,4099,1202],{"class":1088},[1050,4101,2657],{"class":1991},[1050,4103,2660],{"class":1264},[1050,4105,1614],{"class":1088},[1050,4107,4109],{"class":1052,"line":4108},105,[1050,4110,2267],{"class":1067},[1050,4112,4114,4116,4118,4120,4122],{"class":1052,"line":4113},106,[1050,4115,2303],{"class":1063},[1050,4117,1286],{"class":1264},[1050,4119,1229],{"class":1088},[1050,4121,2312],{"class":1264},[1050,4123,1614],{"class":1088},[1050,4125,4127],{"class":1052,"line":4126},107,[1050,4128,1620],{"class":1067},[1050,4130,4132,4134,4136,4138,4140],{"class":1052,"line":4131},108,[1050,4133,2349],{"class":1063},[1050,4135,2249],{"class":1067},[1050,4137,1089],{"class":1088},[1050,4139,2356],{"class":1384},[1050,4141,1567],{"class":1088},[1050,4143,4145,4147,4149,4151,4153,4155,4157,4159,4161,4163,4165,4167,4169,4171,4173],{"class":1052,"line":4144},109,[1050,4146,2303],{"class":1063},[1050,4148,1286],{"class":1264},[1050,4150,1289],{"class":1088},[1050,4152,1293],{"class":1292},[1050,4154,1886],{"class":1296},[1050,4156,1293],{"class":1292},[1050,4158,1302],{"class":1088},[1050,4160,1305],{"class":1292},[1050,4162,2380],{"class":1296},[1050,4164,1293],{"class":1292},[1050,4166,1900],{"class":1088},[1050,4168,1903],{"class":1395},[1050,4170,1359],{"class":1088},[1050,4172,2391],{"class":1270},[1050,4174,1614],{"class":1088},[1050,4176,4178,4180,4182,4184,4186],{"class":1052,"line":4177},110,[1050,4179,2349],{"class":1063},[1050,4181,3932],{"class":1673},[1050,4183,2029],{"class":1063},[1050,4185,3937],{"class":1067},[1050,4187,1567],{"class":1088},[1050,4189,4191,4193,4195,4197,4199,4201,4203,4205,4207,4209,4211,4213,4215,4217,4219],{"class":1052,"line":4190},111,[1050,4192,2303],{"class":1063},[1050,4194,1286],{"class":1264},[1050,4196,1289],{"class":1088},[1050,4198,1293],{"class":1292},[1050,4200,1886],{"class":1296},[1050,4202,1293],{"class":1292},[1050,4204,1302],{"class":1088},[1050,4206,3959],{"class":1673},[1050,4208,1229],{"class":1088},[1050,4210,3964],{"class":1264},[1050,4212,3967],{"class":1088},[1050,4214,1903],{"class":1395},[1050,4216,1359],{"class":1088},[1050,4218,3974],{"class":1270},[1050,4220,1614],{"class":1088},[1050,4222,4224],{"class":1052,"line":4223},112,[1050,4225,1499],{"class":1067},[1050,4227,4229,4231,4233,4236,4238,4240,4242,4244,4246,4248,4250,4252,4254,4256],{"class":1052,"line":4228},113,[1050,4230,1368],{"class":1218},[1050,4232,1222],{"class":1218},[1050,4234,4235],{"class":1225}," destroy",[1050,4237,1229],{"class":1088},[1050,4239,2640],{"class":2639},[1050,4241,1202],{"class":1088},[1050,4243,1983],{"class":1232},[1050,4245,1202],{"class":1088},[1050,4247,2649],{"class":1991},[1050,4249,2652],{"class":1232},[1050,4251,1202],{"class":1088},[1050,4253,2657],{"class":1991},[1050,4255,2660],{"class":1232},[1050,4257,1236],{"class":1088},[1050,4259,4261,4263,4266],{"class":1052,"line":4260},114,[1050,4262,2667],{"class":1242},[1050,4264,4265],{"class":1246},"Delete resource.",[1050,4267,1250],{"class":1242},[1050,4269,4271,4273],{"class":1052,"line":4270},115,[1050,4272,2217],{"class":1063},[1050,4274,1567],{"class":1088},[1050,4276,4278,4281,4283,4285,4288,4290,4293,4295,4297,4299,4301],{"class":1052,"line":4277},116,[1050,4279,4280],{"class":1063},"            await",[1050,4282,2706],{"class":2687},[1050,4284,1089],{"class":1088},[1050,4286,4287],{"class":1264},"perform_destroy",[1050,4289,1229],{"class":1088},[1050,4291,4292],{"class":1991},"*",[1050,4294,2652],{"class":1264},[1050,4296,1202],{"class":1088},[1050,4298,2657],{"class":1991},[1050,4300,2660],{"class":1264},[1050,4302,1614],{"class":1088},[1050,4304,4306,4308,4310,4312,4314,4316,4318,4320,4322,4325,4327,4329,4331,4333,4336],{"class":1052,"line":4305},117,[1050,4307,2303],{"class":1063},[1050,4309,1286],{"class":1264},[1050,4311,1289],{"class":1088},[1050,4313,1293],{"class":1292},[1050,4315,1297],{"class":1296},[1050,4317,1293],{"class":1292},[1050,4319,1302],{"class":1088},[1050,4321,1305],{"class":1292},[1050,4323,4324],{"class":1296},"Resource deleted",[1050,4326,1293],{"class":1292},[1050,4328,1900],{"class":1088},[1050,4330,1903],{"class":1395},[1050,4332,1359],{"class":1088},[1050,4334,4335],{"class":1270},"204",[1050,4337,1614],{"class":1088},[1050,4339,4341],{"class":1052,"line":4340},118,[1050,4342,1620],{"class":1067},[1050,4344,4346,4348,4350,4352,4354],{"class":1052,"line":4345},119,[1050,4347,2349],{"class":1063},[1050,4349,3932],{"class":1673},[1050,4351,2029],{"class":1063},[1050,4353,3937],{"class":1067},[1050,4355,1567],{"class":1088},[1050,4357,4359,4361,4363,4365,4367,4369,4371,4373,4375,4377,4379,4381,4383,4385,4387],{"class":1052,"line":4358},120,[1050,4360,2303],{"class":1063},[1050,4362,1286],{"class":1264},[1050,4364,1289],{"class":1088},[1050,4366,1293],{"class":1292},[1050,4368,1886],{"class":1296},[1050,4370,1293],{"class":1292},[1050,4372,1302],{"class":1088},[1050,4374,3959],{"class":1673},[1050,4376,1229],{"class":1088},[1050,4378,3964],{"class":1264},[1050,4380,3967],{"class":1088},[1050,4382,1903],{"class":1395},[1050,4384,1359],{"class":1088},[1050,4386,3974],{"class":1270},[1050,4388,1614],{"class":1088},[1050,4390,4392],{"class":1052,"line":4391},121,[1050,4393,1499],{"class":1067},[1050,4395,4397,4399,4401,4404,4406,4408,4410,4413],{"class":1052,"line":4396},122,[1050,4398,1368],{"class":1218},[1050,4400,1222],{"class":1218},[1050,4402,4403],{"class":1225}," perform_create",[1050,4405,1229],{"class":1088},[1050,4407,2640],{"class":2639},[1050,4409,1202],{"class":1088},[1050,4411,4412],{"class":1232}," data",[1050,4414,1236],{"class":1088},[1050,4416,4418,4420,4423],{"class":1052,"line":4417},123,[1050,4419,2667],{"class":1242},[1050,4421,4422],{"class":1246},"Override in subclasses.",[1050,4424,1250],{"class":1242},[1050,4426,4428,4431],{"class":1052,"line":4427},124,[1050,4429,4430],{"class":1063},"        raise",[1050,4432,4433],{"class":1673}," NotImplementedError\n",[1050,4435,4437],{"class":1052,"line":4436},125,[1050,4438,1499],{"class":1067},[1050,4440,4442,4444,4446,4449,4451,4453,4455,4457,4459,4461,4463,4465,4467,4469],{"class":1052,"line":4441},126,[1050,4443,1368],{"class":1218},[1050,4445,1222],{"class":1218},[1050,4447,4448],{"class":1225}," perform_update",[1050,4450,1229],{"class":1088},[1050,4452,2640],{"class":2639},[1050,4454,1202],{"class":1088},[1050,4456,4412],{"class":1232},[1050,4458,1202],{"class":1088},[1050,4460,2649],{"class":1991},[1050,4462,2652],{"class":1232},[1050,4464,1202],{"class":1088},[1050,4466,2657],{"class":1991},[1050,4468,2660],{"class":1232},[1050,4470,1236],{"class":1088},[1050,4472,4474,4476,4478],{"class":1052,"line":4473},127,[1050,4475,2667],{"class":1242},[1050,4477,4422],{"class":1246},[1050,4479,1250],{"class":1242},[1050,4481,4483,4485],{"class":1052,"line":4482},128,[1050,4484,4430],{"class":1063},[1050,4486,4433],{"class":1673},[1050,4488,4490],{"class":1052,"line":4489},129,[1050,4491,1499],{"class":1067},[1050,4493,4495,4497,4499,4502,4504,4506,4508,4510,4512,4514,4516,4518],{"class":1052,"line":4494},130,[1050,4496,1368],{"class":1218},[1050,4498,1222],{"class":1218},[1050,4500,4501],{"class":1225}," perform_destroy",[1050,4503,1229],{"class":1088},[1050,4505,2640],{"class":2639},[1050,4507,1202],{"class":1088},[1050,4509,2649],{"class":1991},[1050,4511,2652],{"class":1232},[1050,4513,1202],{"class":1088},[1050,4515,2657],{"class":1991},[1050,4517,2660],{"class":1232},[1050,4519,1236],{"class":1088},[1050,4521,4523,4525,4527],{"class":1052,"line":4522},131,[1050,4524,2667],{"class":1242},[1050,4526,4422],{"class":1246},[1050,4528,1250],{"class":1242},[1050,4530,4532,4534],{"class":1052,"line":4531},132,[1050,4533,4430],{"class":1063},[1050,4535,4433],{"class":1673},[1050,4537,4539],{"class":1052,"line":4538},133,[1050,4540,1212],{"emptyLinePlaceholder":1211},[1050,4542,4544,4546,4549,4551,4554],{"class":1052,"line":4543},134,[1050,4545,2600],{"class":1218},[1050,4547,4548],{"class":2603}," PostAPIView",[1050,4550,1229],{"class":1088},[1050,4552,4553],{"class":2609},"AsyncAPIView",[1050,4555,1236],{"class":1088},[1050,4557,4559,4561,4564],{"class":1052,"line":4558},135,[1050,4560,1243],{"class":1242},[1050,4562,4563],{"class":1246},"Async API view for posts.",[1050,4565,1250],{"class":1242},[1050,4567,4569],{"class":1052,"line":4568},136,[1050,4570,1499],{"class":1067},[1050,4572,4574,4576,4578,4580,4582,4584,4586,4588],{"class":1052,"line":4573},137,[1050,4575,1368],{"class":1218},[1050,4577,1222],{"class":1218},[1050,4579,1674],{"class":1673},[1050,4581,1229],{"class":1088},[1050,4583,2640],{"class":2639},[1050,4585,1202],{"class":1088},[1050,4587,1983],{"class":1232},[1050,4589,1236],{"class":1088},[1050,4591,4593,4595,4598],{"class":1052,"line":4592},138,[1050,4594,2667],{"class":1242},[1050,4596,4597],{"class":1246},"List posts asynchronously.",[1050,4599,1250],{"class":1242},[1050,4601,4603,4605,4607],{"class":1052,"line":4602},139,[1050,4604,2983],{"class":1067},[1050,4606,1359],{"class":1088},[1050,4608,1362],{"class":1088},[1050,4610,4612,4614,4616,4618,4620,4622,4624,4626,4628,4630,4632,4634,4636,4638],{"class":1052,"line":4611},140,[1050,4613,2012],{"class":1063},[1050,4615,1371],{"class":1063},[1050,4617,1374],{"class":1067},[1050,4619,1377],{"class":1063},[1050,4621,1199],{"class":1067},[1050,4623,1089],{"class":1088},[1050,4625,1385],{"class":1384},[1050,4627,1089],{"class":1088},[1050,4629,1390],{"class":1264},[1050,4631,1229],{"class":1088},[1050,4633,1396],{"class":1395},[1050,4635,1359],{"class":1088},[1050,4637,1402],{"class":1401},[1050,4639,1236],{"class":1088},[1050,4641,4643,4645,4647,4649],{"class":1052,"line":4642},141,[1050,4644,3056],{"class":1067},[1050,4646,1089],{"class":1088},[1050,4648,1415],{"class":1264},[1050,4650,1418],{"class":1088},[1050,4652,4654,4656,4658,4660,4662,4664,4666,4668],{"class":1052,"line":4653},142,[1050,4655,3067],{"class":1292},[1050,4657,1427],{"class":1296},[1050,4659,1293],{"class":1292},[1050,4661,1302],{"class":1088},[1050,4663,1434],{"class":1264},[1050,4665,1089],{"class":1088},[1050,4667,1427],{"class":1384},[1050,4669,1441],{"class":1088},[1050,4671,4673,4675,4677,4679,4681,4683,4685,4687],{"class":1052,"line":4672},143,[1050,4674,3067],{"class":1292},[1050,4676,1449],{"class":1296},[1050,4678,1293],{"class":1292},[1050,4680,1302],{"class":1088},[1050,4682,1434],{"class":1264},[1050,4684,1089],{"class":1088},[1050,4686,1449],{"class":1384},[1050,4688,1441],{"class":1088},[1050,4690,4692,4694,4696,4698,4700,4702,4704],{"class":1052,"line":4691},144,[1050,4693,3067],{"class":1292},[1050,4695,3106],{"class":1296},[1050,4697,1293],{"class":1292},[1050,4699,1302],{"class":1088},[1050,4701,1434],{"class":1264},[1050,4703,1089],{"class":1088},[1050,4705,4706],{"class":1384},"slug\n",[1050,4708,4710],{"class":1052,"line":4709},145,[1050,4711,3145],{"class":1088},[1050,4713,4715],{"class":1052,"line":4714},146,[1050,4716,1620],{"class":1067},[1050,4718,4720,4722,4724,4726,4728,4730,4732,4734,4736],{"class":1052,"line":4719},147,[1050,4721,1742],{"class":1063},[1050,4723,1286],{"class":1264},[1050,4725,1289],{"class":1088},[1050,4727,1293],{"class":1292},[1050,4729,1513],{"class":1296},[1050,4731,1293],{"class":1292},[1050,4733,1302],{"class":1088},[1050,4735,1520],{"class":1264},[1050,4737,1313],{"class":1088},[1050,4739,4741],{"class":1052,"line":4740},148,[1050,4742,1499],{"class":1067},[1050,4744,4746,4748,4750,4752,4754,4756,4758,4760],{"class":1052,"line":4745},149,[1050,4747,1368],{"class":1218},[1050,4749,1222],{"class":1218},[1050,4751,4403],{"class":1225},[1050,4753,1229],{"class":1088},[1050,4755,2640],{"class":2639},[1050,4757,1202],{"class":1088},[1050,4759,4412],{"class":1232},[1050,4761,1236],{"class":1088},[1050,4763,4765,4767,4770],{"class":1052,"line":4764},150,[1050,4766,2667],{"class":1242},[1050,4768,4769],{"class":1246},"Create post asynchronously.",[1050,4771,1250],{"class":1242},[1050,4773,4775],{"class":1052,"line":4774},151,[1050,4776,4777],{"class":1056},"        # Note: Django's async ORM support is limited\n",[1050,4779,4781],{"class":1052,"line":4780},152,[1050,4782,4783],{"class":1056},"        # Use sync_to_async for complex operations\n",[1050,4785,4787,4790,4792,4794,4796,4798],{"class":1052,"line":4786},153,[1050,4788,4789],{"class":1063},"        from",[1050,4791,1173],{"class":1067},[1050,4793,1089],{"class":1088},[1050,4795,1178],{"class":1067},[1050,4797,1064],{"class":1063},[1050,4799,1183],{"class":1067},[1050,4801,4803],{"class":1052,"line":4802},154,[1050,4804,1620],{"class":1067},[1050,4806,4808,4811],{"class":1052,"line":4807},155,[1050,4809,4810],{"class":1088},"        @",[1050,4812,4813],{"class":1225},"sync_to_async\n",[1050,4815,4817,4820,4823],{"class":1052,"line":4816},156,[1050,4818,4819],{"class":1218},"        def",[1050,4821,4822],{"class":1225}," create_post",[1050,4824,4825],{"class":1088},"():\n",[1050,4827,4829,4831,4833,4835,4837,4839,4841],{"class":1052,"line":4828},157,[1050,4830,2303],{"class":1063},[1050,4832,1199],{"class":1067},[1050,4834,1089],{"class":1088},[1050,4836,1385],{"class":1384},[1050,4838,1089],{"class":1088},[1050,4840,3492],{"class":1264},[1050,4842,4843],{"class":1088},"(\n",[1050,4845,4847,4850,4852,4854,4857,4859,4861,4863],{"class":1052,"line":4846},158,[1050,4848,4849],{"class":1395},"                title",[1050,4851,1359],{"class":1088},[1050,4853,2119],{"class":1264},[1050,4855,4856],{"class":1088},"[",[1050,4858,1293],{"class":1292},[1050,4860,1449],{"class":1296},[1050,4862,1293],{"class":1292},[1050,4864,4865],{"class":1088},"],\n",[1050,4867,4869,4872,4874,4876,4878,4880,4882,4884],{"class":1052,"line":4868},159,[1050,4870,4871],{"class":1395},"                content",[1050,4873,1359],{"class":1088},[1050,4875,2119],{"class":1264},[1050,4877,4856],{"class":1088},[1050,4879,1293],{"class":1292},[1050,4881,1792],{"class":1296},[1050,4883,1293],{"class":1292},[1050,4885,4865],{"class":1088},[1050,4887,4889,4892,4894,4896,4898,4900,4902,4904,4906,4908,4910,4913],{"class":1052,"line":4888},160,[1050,4890,4891],{"class":1395},"                published",[1050,4893,1359],{"class":1088},[1050,4895,2119],{"class":1264},[1050,4897,1089],{"class":1088},[1050,4899,2049],{"class":1264},[1050,4901,1229],{"class":1088},[1050,4903,1293],{"class":1292},[1050,4905,1396],{"class":1296},[1050,4907,1293],{"class":1292},[1050,4909,1202],{"class":1088},[1050,4911,4912],{"class":1401}," False",[1050,4914,1614],{"class":1088},[1050,4916,4918],{"class":1052,"line":4917},161,[1050,4919,4920],{"class":1088},"            )\n",[1050,4922,4924],{"class":1052,"line":4923},162,[1050,4925,1620],{"class":1067},[1050,4927,4929,4931,4933,4935,4937],{"class":1052,"line":4928},163,[1050,4930,1579],{"class":1067},[1050,4932,1359],{"class":1088},[1050,4934,1584],{"class":1063},[1050,4936,4822],{"class":1264},[1050,4938,1487],{"class":1088},[1050,4940,4942],{"class":1052,"line":4941},164,[1050,4943,1620],{"class":1067},[1050,4945,4947,4949],{"class":1052,"line":4946},165,[1050,4948,1742],{"class":1063},[1050,4950,3229],{"class":1088},[1050,4952,4954,4956,4958,4960,4962,4964,4966,4968],{"class":1052,"line":4953},166,[1050,4955,1424],{"class":1292},[1050,4957,1427],{"class":1296},[1050,4959,1293],{"class":1292},[1050,4961,1302],{"class":1088},[1050,4963,1434],{"class":1067},[1050,4965,1089],{"class":1088},[1050,4967,1427],{"class":1384},[1050,4969,1441],{"class":1088},[1050,4971,4973,4975,4977,4979,4981,4983,4985,4987],{"class":1052,"line":4972},167,[1050,4974,1424],{"class":1292},[1050,4976,1449],{"class":1296},[1050,4978,1293],{"class":1292},[1050,4980,1302],{"class":1088},[1050,4982,1434],{"class":1067},[1050,4984,1089],{"class":1088},[1050,4986,1449],{"class":1384},[1050,4988,1441],{"class":1088},[1050,4990,4992,4994,4996,4998,5000,5002,5004],{"class":1052,"line":4991},168,[1050,4993,1424],{"class":1292},[1050,4995,3106],{"class":1296},[1050,4997,1293],{"class":1292},[1050,4999,1302],{"class":1088},[1050,5001,1434],{"class":1067},[1050,5003,1089],{"class":1088},[1050,5005,4706],{"class":1384},[1050,5007,5009],{"class":1052,"line":5008},169,[1050,5010,5011],{"class":1088},"        }\n",[1050,5013,5015],{"class":1052,"line":5014},170,[1050,5016,1499],{"class":1067},[1050,5018,5020,5022,5024,5026,5028,5030,5032,5034,5036,5038],{"class":1052,"line":5019},171,[1050,5021,1368],{"class":1218},[1050,5023,1222],{"class":1218},[1050,5025,4448],{"class":1225},[1050,5027,1229],{"class":1088},[1050,5029,2640],{"class":2639},[1050,5031,1202],{"class":1088},[1050,5033,4412],{"class":1232},[1050,5035,1202],{"class":1088},[1050,5037,1546],{"class":1232},[1050,5039,1236],{"class":1088},[1050,5041,5043,5045,5048],{"class":1052,"line":5042},172,[1050,5044,2667],{"class":1242},[1050,5046,5047],{"class":1246},"Update post asynchronously.",[1050,5049,1250],{"class":1242},[1050,5051,5053,5055,5057,5059,5061,5063],{"class":1052,"line":5052},173,[1050,5054,4789],{"class":1063},[1050,5056,1173],{"class":1067},[1050,5058,1089],{"class":1088},[1050,5060,1178],{"class":1067},[1050,5062,1064],{"class":1063},[1050,5064,1183],{"class":1067},[1050,5066,5068],{"class":1052,"line":5067},174,[1050,5069,1620],{"class":1067},[1050,5071,5073,5075],{"class":1052,"line":5072},175,[1050,5074,4810],{"class":1088},[1050,5076,4813],{"class":1225},[1050,5078,5080,5082,5085],{"class":1052,"line":5079},176,[1050,5081,4819],{"class":1218},[1050,5083,5084],{"class":1225}," update_post",[1050,5086,4825],{"class":1088},[1050,5088,5090,5093,5095,5097,5099,5101,5103,5105,5107,5109,5111,5113],{"class":1052,"line":5089},177,[1050,5091,5092],{"class":1067},"            post ",[1050,5094,1359],{"class":1088},[1050,5096,1199],{"class":1067},[1050,5098,1089],{"class":1088},[1050,5100,1385],{"class":1384},[1050,5102,1089],{"class":1088},[1050,5104,2049],{"class":1264},[1050,5106,1229],{"class":1088},[1050,5108,1427],{"class":1395},[1050,5110,1359],{"class":1088},[1050,5112,1602],{"class":1264},[1050,5114,1614],{"class":1088},[1050,5116,5118,5121,5123,5125,5128,5130,5132,5134,5136,5138,5140,5142,5144,5146,5148,5150],{"class":1052,"line":5117},178,[1050,5119,5120],{"class":1067},"            post",[1050,5122,1089],{"class":1088},[1050,5124,1449],{"class":1384},[1050,5126,5127],{"class":1088}," =",[1050,5129,4412],{"class":1067},[1050,5131,1089],{"class":1088},[1050,5133,2049],{"class":1264},[1050,5135,1229],{"class":1088},[1050,5137,1293],{"class":1292},[1050,5139,1449],{"class":1296},[1050,5141,1293],{"class":1292},[1050,5143,1202],{"class":1088},[1050,5145,1434],{"class":1264},[1050,5147,1089],{"class":1088},[1050,5149,1449],{"class":1384},[1050,5151,1614],{"class":1088},[1050,5153,5155,5157,5159,5161,5163,5165,5167,5169,5171,5173,5175,5177,5179,5181,5183,5185],{"class":1052,"line":5154},179,[1050,5156,5120],{"class":1067},[1050,5158,1089],{"class":1088},[1050,5160,1792],{"class":1384},[1050,5162,5127],{"class":1088},[1050,5164,4412],{"class":1067},[1050,5166,1089],{"class":1088},[1050,5168,2049],{"class":1264},[1050,5170,1229],{"class":1088},[1050,5172,1293],{"class":1292},[1050,5174,1792],{"class":1296},[1050,5176,1293],{"class":1292},[1050,5178,1202],{"class":1088},[1050,5180,1434],{"class":1264},[1050,5182,1089],{"class":1088},[1050,5184,1792],{"class":1384},[1050,5186,1614],{"class":1088},[1050,5188,5190,5192,5194,5196,5198,5200,5202,5204,5206,5208,5210,5212,5214,5216,5218,5220],{"class":1052,"line":5189},180,[1050,5191,5120],{"class":1067},[1050,5193,1089],{"class":1088},[1050,5195,1396],{"class":1384},[1050,5197,5127],{"class":1088},[1050,5199,4412],{"class":1067},[1050,5201,1089],{"class":1088},[1050,5203,2049],{"class":1264},[1050,5205,1229],{"class":1088},[1050,5207,1293],{"class":1292},[1050,5209,1396],{"class":1296},[1050,5211,1293],{"class":1292},[1050,5213,1202],{"class":1088},[1050,5215,1434],{"class":1264},[1050,5217,1089],{"class":1088},[1050,5219,1396],{"class":1384},[1050,5221,1614],{"class":1088},[1050,5223,5225,5227,5229,5232],{"class":1052,"line":5224},181,[1050,5226,5120],{"class":1067},[1050,5228,1089],{"class":1088},[1050,5230,5231],{"class":1264},"save",[1050,5233,1487],{"class":1088},[1050,5235,5237,5239],{"class":1052,"line":5236},182,[1050,5238,2303],{"class":1063},[1050,5240,5241],{"class":1067}," post\n",[1050,5243,5245],{"class":1052,"line":5244},183,[1050,5246,1620],{"class":1067},[1050,5248,5250,5252,5254,5256,5258],{"class":1052,"line":5249},184,[1050,5251,1579],{"class":1067},[1050,5253,1359],{"class":1088},[1050,5255,1584],{"class":1063},[1050,5257,5084],{"class":1264},[1050,5259,1487],{"class":1088},[1050,5261,5263],{"class":1052,"line":5262},185,[1050,5264,1620],{"class":1067},[1050,5266,5268,5270],{"class":1052,"line":5267},186,[1050,5269,1742],{"class":1063},[1050,5271,3229],{"class":1088},[1050,5273,5275,5277,5279,5281,5283,5285,5287,5289],{"class":1052,"line":5274},187,[1050,5276,1424],{"class":1292},[1050,5278,1427],{"class":1296},[1050,5280,1293],{"class":1292},[1050,5282,1302],{"class":1088},[1050,5284,1434],{"class":1067},[1050,5286,1089],{"class":1088},[1050,5288,1427],{"class":1384},[1050,5290,1441],{"class":1088},[1050,5292,5294,5296,5298,5300,5302,5304,5306,5308],{"class":1052,"line":5293},188,[1050,5295,1424],{"class":1292},[1050,5297,1449],{"class":1296},[1050,5299,1293],{"class":1292},[1050,5301,1302],{"class":1088},[1050,5303,1434],{"class":1067},[1050,5305,1089],{"class":1088},[1050,5307,1449],{"class":1384},[1050,5309,1441],{"class":1088},[1050,5311,5313,5315,5317,5319,5321,5323,5325],{"class":1052,"line":5312},189,[1050,5314,1424],{"class":1292},[1050,5316,3106],{"class":1296},[1050,5318,1293],{"class":1292},[1050,5320,1302],{"class":1088},[1050,5322,1434],{"class":1067},[1050,5324,1089],{"class":1088},[1050,5326,4706],{"class":1384},[1050,5328,5330],{"class":1052,"line":5329},190,[1050,5331,5011],{"class":1088},[1050,5333,5335],{"class":1052,"line":5334},191,[1050,5336,1499],{"class":1067},[1050,5338,5340,5342,5344,5346,5348,5350,5352,5354],{"class":1052,"line":5339},192,[1050,5341,1368],{"class":1218},[1050,5343,1222],{"class":1218},[1050,5345,4501],{"class":1225},[1050,5347,1229],{"class":1088},[1050,5349,2640],{"class":2639},[1050,5351,1202],{"class":1088},[1050,5353,1546],{"class":1232},[1050,5355,1236],{"class":1088},[1050,5357,5359,5361,5364],{"class":1052,"line":5358},193,[1050,5360,2667],{"class":1242},[1050,5362,5363],{"class":1246},"Delete post asynchronously.",[1050,5365,1250],{"class":1242},[1050,5367,5369,5371,5373,5375,5377,5379],{"class":1052,"line":5368},194,[1050,5370,4789],{"class":1063},[1050,5372,1173],{"class":1067},[1050,5374,1089],{"class":1088},[1050,5376,1178],{"class":1067},[1050,5378,1064],{"class":1063},[1050,5380,1183],{"class":1067},[1050,5382,5384],{"class":1052,"line":5383},195,[1050,5385,1620],{"class":1067},[1050,5387,5389,5391],{"class":1052,"line":5388},196,[1050,5390,4810],{"class":1088},[1050,5392,4813],{"class":1225},[1050,5394,5396,5398,5401],{"class":1052,"line":5395},197,[1050,5397,4819],{"class":1218},[1050,5399,5400],{"class":1225}," delete_post",[1050,5402,4825],{"class":1088},[1050,5404,5406,5408,5410,5412,5414,5416,5418,5420,5422,5424,5426,5428],{"class":1052,"line":5405},198,[1050,5407,5092],{"class":1067},[1050,5409,1359],{"class":1088},[1050,5411,1199],{"class":1067},[1050,5413,1089],{"class":1088},[1050,5415,1385],{"class":1384},[1050,5417,1089],{"class":1088},[1050,5419,2049],{"class":1264},[1050,5421,1229],{"class":1088},[1050,5423,1427],{"class":1395},[1050,5425,1359],{"class":1088},[1050,5427,1602],{"class":1264},[1050,5429,1614],{"class":1088},[1050,5431,5433,5435,5437,5440],{"class":1052,"line":5432},199,[1050,5434,5120],{"class":1067},[1050,5436,1089],{"class":1088},[1050,5438,5439],{"class":1264},"delete",[1050,5441,1487],{"class":1088},[1050,5443,5445],{"class":1052,"line":5444},200,[1050,5446,1620],{"class":1067},[1050,5448,5450,5453,5455],{"class":1052,"line":5449},201,[1050,5451,5452],{"class":1063},"        await",[1050,5454,5400],{"class":1264},[1050,5456,1487],{"class":1088},[1030,5458,5460],{"id":5459},"concurrent-operations","Concurrent Operations",[1035,5462,5464],{"id":5463},"parallel-api-calls","Parallel API Calls",[1040,5466,5468],{"className":1042,"code":5467,"language":1044,"meta":1045,"style":1045},"# views.py\nimport aiohttp\nimport asyncio\nfrom django.http import JsonResponse\n\nasync def fetch_user_data(session, user_id):\n    \"\"\"Fetch user data from external API.\"\"\"\n    url = f\"https://api.example.com/users/{user_id}\"\n    \n    try:\n        async with session.get(url) as response:\n            if response.status == 200:\n                return await response.json()\n            else:\n                return None\n    except Exception as e:\n        print(f\"Error fetching user {user_id}: {e}\")\n        return None\n\nasync def fetch_user_posts(session, user_id):\n    \"\"\"Fetch user posts from external API.\"\"\"\n    url = f\"https://api.example.com/users/{user_id}/posts\"\n    \n    try:\n        async with session.get(url) as response:\n            if response.status == 200:\n                return await response.json()\n            else:\n                return []\n    except Exception as e:\n        print(f\"Error fetching posts for user {user_id}: {e}\")\n        return []\n\nasync def fetch_user_followers(session, user_id):\n    \"\"\"Fetch user followers from external API.\"\"\"\n    url = f\"https://api.example.com/users/{user_id}/followers\"\n    \n    try:\n        async with session.get(url) as response:\n            if response.status == 200:\n                return await response.json()\n            else:\n                return []\n    except Exception as e:\n        print(f\"Error fetching followers for user {user_id}: {e}\")\n        return []\n\nasync def user_dashboard(request, user_id):\n    \"\"\"Async view that fetches data from multiple sources concurrently.\"\"\"\n    async with aiohttp.ClientSession() as session:\n        # Fetch all data concurrently\n        user_data_task = fetch_user_data(session, user_id)\n        user_posts_task = fetch_user_posts(session, user_id)\n        user_followers_task = fetch_user_followers(session, user_id)\n        \n        # Wait for all tasks to complete\n        user_data, user_posts, user_followers = await asyncio.gather(\n            user_data_task,\n            user_posts_task,\n            user_followers_task,\n            return_exceptions=True\n        )\n        \n        # Handle exceptions\n        if isinstance(user_data, Exception):\n            user_data = None\n        if isinstance(user_posts, Exception):\n            user_posts = []\n        if isinstance(user_followers, Exception):\n            user_followers = []\n        \n        # Combine results\n        dashboard_data = {\n            'user': user_data,\n            'posts': user_posts,\n            'followers': user_followers,\n            'stats': {\n                'posts_count': len(user_posts) if user_posts else 0,\n                'followers_count': len(user_followers) if user_followers else 0\n            }\n        }\n        \n        return JsonResponse(dashboard_data)\n\nasync def batch_process_users(request):\n    \"\"\"Process multiple users concurrently.\"\"\"\n    user_ids = request.GET.get('user_ids', '').split(',')\n    \n    if not user_ids or user_ids == ['']:\n        return JsonResponse({'error': 'No user IDs provided'}, status=400)\n    \n    async with aiohttp.ClientSession() as session:\n        # Create tasks for all users\n        tasks = []\n        for user_id in user_ids:\n            if user_id.strip():\n                task = fetch_user_data(session, user_id.strip())\n                tasks.append(task)\n        \n        # Execute all tasks concurrently\n        results = await asyncio.gather(*tasks, return_exceptions=True)\n        \n        # Process results\n        processed_users = []\n        for i, result in enumerate(results):\n            if isinstance(result, Exception):\n                processed_users.append({\n                    'user_id': user_ids[i],\n                    'error': str(result)\n                })\n            else:\n                processed_users.append({\n                    'user_id': user_ids[i],\n                    'data': result\n                })\n        \n        return JsonResponse({\n            'processed_users': processed_users,\n            'total_processed': len(processed_users)\n        })\n",[1047,5469,5470,5474,5480,5486,5500,5504,5525,5534,5555,5559,5565,5590,5607,5622,5629,5636,5648,5680,5686,5690,5709,5718,5737,5741,5747,5771,5787,5801,5807,5813,5825,5854,5860,5864,5883,5892,5911,5915,5921,5945,5961,5975,5981,5987,5999,6028,6034,6038,6057,6066,6086,6091,6110,6129,6148,6152,6157,6184,6191,6198,6205,6215,6220,6224,6229,6247,6256,6273,6282,6299,6308,6312,6317,6326,6342,6356,6372,6385,6418,6446,6450,6454,6458,6471,6475,6490,6499,6545,6549,6576,6609,6613,6633,6638,6647,6662,6675,6699,6715,6719,6724,6757,6761,6766,6775,6799,6815,6826,6846,6864,6869,6875,6885,6903,6916,6920,6924,6932,6948,6967],{"__ignoreMap":1045},[1050,5471,5472],{"class":1052,"line":1053},[1050,5473,1057],{"class":1056},[1050,5475,5476,5478],{"class":1052,"line":1060},[1050,5477,1064],{"class":1063},[1050,5479,1076],{"class":1067},[1050,5481,5482,5484],{"class":1052,"line":1071},[1050,5483,1064],{"class":1063},[1050,5485,1068],{"class":1067},[1050,5487,5488,5490,5492,5494,5496,5498],{"class":1052,"line":1079},[1050,5489,1082],{"class":1063},[1050,5491,1085],{"class":1067},[1050,5493,1089],{"class":1088},[1050,5495,1092],{"class":1067},[1050,5497,1064],{"class":1063},[1050,5499,1097],{"class":1067},[1050,5501,5502],{"class":1052,"line":1100},[1050,5503,1212],{"emptyLinePlaceholder":1211},[1050,5505,5506,5508,5510,5513,5515,5518,5520,5523],{"class":1052,"line":1117},[1050,5507,1219],{"class":1218},[1050,5509,1222],{"class":1218},[1050,5511,5512],{"class":1225}," fetch_user_data",[1050,5514,1229],{"class":1088},[1050,5516,5517],{"class":1232},"session",[1050,5519,1202],{"class":1088},[1050,5521,5522],{"class":1232}," user_id",[1050,5524,1236],{"class":1088},[1050,5526,5527,5529,5532],{"class":1052,"line":1143},[1050,5528,1243],{"class":1242},[1050,5530,5531],{"class":1246},"Fetch user data from external API.",[1050,5533,1250],{"class":1242},[1050,5535,5536,5539,5541,5543,5546,5548,5551,5553],{"class":1052,"line":1168},[1050,5537,5538],{"class":1067},"    url ",[1050,5540,1359],{"class":1088},[1050,5542,2455],{"class":1218},[1050,5544,5545],{"class":1296},"\"https://api.example.com/users/",[1050,5547,2462],{"class":2461},[1050,5549,5550],{"class":1067},"user_id",[1050,5552,2490],{"class":2461},[1050,5554,2493],{"class":1296},[1050,5556,5557],{"class":1052,"line":1186},[1050,5558,1499],{"class":1067},[1050,5560,5561,5563],{"class":1052,"line":1208},[1050,5562,1564],{"class":1063},[1050,5564,1567],{"class":1088},[1050,5566,5567,5569,5571,5573,5575,5577,5579,5582,5584,5586,5588],{"class":1052,"line":1215},[1050,5568,2012],{"class":1063},[1050,5570,2015],{"class":1063},[1050,5572,2032],{"class":1067},[1050,5574,1089],{"class":1088},[1050,5576,2049],{"class":1264},[1050,5578,1229],{"class":1088},[1050,5580,5581],{"class":1264},"url",[1050,5583,1274],{"class":1088},[1050,5585,2029],{"class":1063},[1050,5587,2065],{"class":1067},[1050,5589,1567],{"class":1088},[1050,5591,5592,5595,5597,5599,5601,5603,5605],{"class":1052,"line":1239},[1050,5593,5594],{"class":1063},"            if",[1050,5596,2065],{"class":1067},[1050,5598,1089],{"class":1088},[1050,5600,2080],{"class":1384},[1050,5602,1992],{"class":1991},[1050,5604,2085],{"class":1270},[1050,5606,1567],{"class":1088},[1050,5608,5609,5612,5614,5616,5618,5620],{"class":1052,"line":1253},[1050,5610,5611],{"class":1063},"                return",[1050,5613,1584],{"class":1063},[1050,5615,2065],{"class":1067},[1050,5617,1089],{"class":1088},[1050,5619,2104],{"class":1264},[1050,5621,1487],{"class":1088},[1050,5623,5624,5627],{"class":1052,"line":1280},[1050,5625,5626],{"class":1063},"            else",[1050,5628,1567],{"class":1088},[1050,5630,5631,5633],{"class":1052,"line":1316},[1050,5632,5611],{"class":1063},[1050,5634,5635],{"class":1401}," None\n",[1050,5637,5638,5640,5642,5644,5646],{"class":1052,"line":1321},[1050,5639,1863],{"class":1063},[1050,5641,3932],{"class":1673},[1050,5643,2029],{"class":1063},[1050,5645,3937],{"class":1067},[1050,5647,1567],{"class":1088},[1050,5649,5650,5653,5655,5658,5661,5663,5665,5667,5670,5672,5674,5676,5678],{"class":1052,"line":1337},[1050,5651,5652],{"class":1840},"        print",[1050,5654,1229],{"class":1088},[1050,5656,5657],{"class":1218},"f",[1050,5659,5660],{"class":1296},"\"Error fetching user ",[1050,5662,2462],{"class":2461},[1050,5664,5550],{"class":1264},[1050,5666,2490],{"class":2461},[1050,5668,5669],{"class":1296},": ",[1050,5671,2462],{"class":2461},[1050,5673,3964],{"class":1264},[1050,5675,2490],{"class":2461},[1050,5677,1930],{"class":1296},[1050,5679,1614],{"class":1088},[1050,5681,5682,5684],{"class":1052,"line":1347},[1050,5683,1742],{"class":1063},[1050,5685,5635],{"class":1401},[1050,5687,5688],{"class":1052,"line":1353},[1050,5689,1212],{"emptyLinePlaceholder":1211},[1050,5691,5692,5694,5696,5699,5701,5703,5705,5707],{"class":1052,"line":1365},[1050,5693,1219],{"class":1218},[1050,5695,1222],{"class":1218},[1050,5697,5698],{"class":1225}," fetch_user_posts",[1050,5700,1229],{"class":1088},[1050,5702,5517],{"class":1232},[1050,5704,1202],{"class":1088},[1050,5706,5522],{"class":1232},[1050,5708,1236],{"class":1088},[1050,5710,5711,5713,5716],{"class":1052,"line":1407},[1050,5712,1243],{"class":1242},[1050,5714,5715],{"class":1246},"Fetch user posts from external API.",[1050,5717,1250],{"class":1242},[1050,5719,5720,5722,5724,5726,5728,5730,5732,5734],{"class":1052,"line":1421},[1050,5721,5538],{"class":1067},[1050,5723,1359],{"class":1088},[1050,5725,2455],{"class":1218},[1050,5727,5545],{"class":1296},[1050,5729,2462],{"class":2461},[1050,5731,5550],{"class":1067},[1050,5733,2490],{"class":2461},[1050,5735,5736],{"class":1296},"/posts\"\n",[1050,5738,5739],{"class":1052,"line":1444},[1050,5740,1499],{"class":1067},[1050,5742,5743,5745],{"class":1052,"line":1464},[1050,5744,1564],{"class":1063},[1050,5746,1567],{"class":1088},[1050,5748,5749,5751,5753,5755,5757,5759,5761,5763,5765,5767,5769],{"class":1052,"line":1490},[1050,5750,2012],{"class":1063},[1050,5752,2015],{"class":1063},[1050,5754,2032],{"class":1067},[1050,5756,1089],{"class":1088},[1050,5758,2049],{"class":1264},[1050,5760,1229],{"class":1088},[1050,5762,5581],{"class":1264},[1050,5764,1274],{"class":1088},[1050,5766,2029],{"class":1063},[1050,5768,2065],{"class":1067},[1050,5770,1567],{"class":1088},[1050,5772,5773,5775,5777,5779,5781,5783,5785],{"class":1052,"line":1496},[1050,5774,5594],{"class":1063},[1050,5776,2065],{"class":1067},[1050,5778,1089],{"class":1088},[1050,5780,2080],{"class":1384},[1050,5782,1992],{"class":1991},[1050,5784,2085],{"class":1270},[1050,5786,1567],{"class":1088},[1050,5788,5789,5791,5793,5795,5797,5799],{"class":1052,"line":1502},[1050,5790,5611],{"class":1063},[1050,5792,1584],{"class":1063},[1050,5794,2065],{"class":1067},[1050,5796,1089],{"class":1088},[1050,5798,2104],{"class":1264},[1050,5800,1487],{"class":1088},[1050,5802,5803,5805],{"class":1052,"line":1525},[1050,5804,5626],{"class":1063},[1050,5806,1567],{"class":1088},[1050,5808,5809,5811],{"class":1052,"line":1530},[1050,5810,5611],{"class":1063},[1050,5812,1362],{"class":1088},[1050,5814,5815,5817,5819,5821,5823],{"class":1052,"line":1551},[1050,5816,1863],{"class":1063},[1050,5818,3932],{"class":1673},[1050,5820,2029],{"class":1063},[1050,5822,3937],{"class":1067},[1050,5824,1567],{"class":1088},[1050,5826,5827,5829,5831,5833,5836,5838,5840,5842,5844,5846,5848,5850,5852],{"class":1052,"line":1561},[1050,5828,5652],{"class":1840},[1050,5830,1229],{"class":1088},[1050,5832,5657],{"class":1218},[1050,5834,5835],{"class":1296},"\"Error fetching posts for user ",[1050,5837,2462],{"class":2461},[1050,5839,5550],{"class":1264},[1050,5841,2490],{"class":2461},[1050,5843,5669],{"class":1296},[1050,5845,2462],{"class":2461},[1050,5847,3964],{"class":1264},[1050,5849,2490],{"class":2461},[1050,5851,1930],{"class":1296},[1050,5853,1614],{"class":1088},[1050,5855,5856,5858],{"class":1052,"line":1570},[1050,5857,1742],{"class":1063},[1050,5859,1362],{"class":1088},[1050,5861,5862],{"class":1052,"line":1576},[1050,5863,1212],{"emptyLinePlaceholder":1211},[1050,5865,5866,5868,5870,5873,5875,5877,5879,5881],{"class":1052,"line":1617},[1050,5867,1219],{"class":1218},[1050,5869,1222],{"class":1218},[1050,5871,5872],{"class":1225}," fetch_user_followers",[1050,5874,1229],{"class":1088},[1050,5876,5517],{"class":1232},[1050,5878,1202],{"class":1088},[1050,5880,5522],{"class":1232},[1050,5882,1236],{"class":1088},[1050,5884,5885,5887,5890],{"class":1052,"line":1623},[1050,5886,1243],{"class":1242},[1050,5888,5889],{"class":1246},"Fetch user followers from external API.",[1050,5891,1250],{"class":1242},[1050,5893,5894,5896,5898,5900,5902,5904,5906,5908],{"class":1052,"line":1629},[1050,5895,5538],{"class":1067},[1050,5897,1359],{"class":1088},[1050,5899,2455],{"class":1218},[1050,5901,5545],{"class":1296},[1050,5903,2462],{"class":2461},[1050,5905,5550],{"class":1067},[1050,5907,2490],{"class":2461},[1050,5909,5910],{"class":1296},"/followers\"\n",[1050,5912,5913],{"class":1052,"line":1657},[1050,5914,1499],{"class":1067},[1050,5916,5917,5919],{"class":1052,"line":1695},[1050,5918,1564],{"class":1063},[1050,5920,1567],{"class":1088},[1050,5922,5923,5925,5927,5929,5931,5933,5935,5937,5939,5941,5943],{"class":1052,"line":1700},[1050,5924,2012],{"class":1063},[1050,5926,2015],{"class":1063},[1050,5928,2032],{"class":1067},[1050,5930,1089],{"class":1088},[1050,5932,2049],{"class":1264},[1050,5934,1229],{"class":1088},[1050,5936,5581],{"class":1264},[1050,5938,1274],{"class":1088},[1050,5940,2029],{"class":1063},[1050,5942,2065],{"class":1067},[1050,5944,1567],{"class":1088},[1050,5946,5947,5949,5951,5953,5955,5957,5959],{"class":1052,"line":1734},[1050,5948,5594],{"class":1063},[1050,5950,2065],{"class":1067},[1050,5952,1089],{"class":1088},[1050,5954,2080],{"class":1384},[1050,5956,1992],{"class":1991},[1050,5958,2085],{"class":1270},[1050,5960,1567],{"class":1088},[1050,5962,5963,5965,5967,5969,5971,5973],{"class":1052,"line":1739},[1050,5964,5611],{"class":1063},[1050,5966,1584],{"class":1063},[1050,5968,2065],{"class":1067},[1050,5970,1089],{"class":1088},[1050,5972,2104],{"class":1264},[1050,5974,1487],{"class":1088},[1050,5976,5977,5979],{"class":1052,"line":1749},[1050,5978,5626],{"class":1063},[1050,5980,1567],{"class":1088},[1050,5982,5983,5985],{"class":1052,"line":1768},[1050,5984,5611],{"class":1063},[1050,5986,1362],{"class":1088},[1050,5988,5989,5991,5993,5995,5997],{"class":1052,"line":1787},[1050,5990,1863],{"class":1063},[1050,5992,3932],{"class":1673},[1050,5994,2029],{"class":1063},[1050,5996,3937],{"class":1067},[1050,5998,1567],{"class":1088},[1050,6000,6001,6003,6005,6007,6010,6012,6014,6016,6018,6020,6022,6024,6026],{"class":1052,"line":1807},[1050,6002,5652],{"class":1840},[1050,6004,1229],{"class":1088},[1050,6006,5657],{"class":1218},[1050,6008,6009],{"class":1296},"\"Error fetching followers for user ",[1050,6011,2462],{"class":2461},[1050,6013,5550],{"class":1264},[1050,6015,2490],{"class":2461},[1050,6017,5669],{"class":1296},[1050,6019,2462],{"class":2461},[1050,6021,3964],{"class":1264},[1050,6023,2490],{"class":2461},[1050,6025,1930],{"class":1296},[1050,6027,1614],{"class":1088},[1050,6029,6030,6032],{"class":1052,"line":1828},[1050,6031,1742],{"class":1063},[1050,6033,1362],{"class":1088},[1050,6035,6036],{"class":1052,"line":1850},[1050,6037,1212],{"emptyLinePlaceholder":1211},[1050,6039,6040,6042,6044,6047,6049,6051,6053,6055],{"class":1052,"line":1855},[1050,6041,1219],{"class":1218},[1050,6043,1222],{"class":1218},[1050,6045,6046],{"class":1225}," user_dashboard",[1050,6048,1229],{"class":1088},[1050,6050,1233],{"class":1232},[1050,6052,1202],{"class":1088},[1050,6054,5522],{"class":1232},[1050,6056,1236],{"class":1088},[1050,6058,6059,6061,6064],{"class":1052,"line":1860},[1050,6060,1243],{"class":1242},[1050,6062,6063],{"class":1246},"Async view that fetches data from multiple sources concurrently.",[1050,6065,1250],{"class":1242},[1050,6067,6068,6070,6072,6074,6076,6078,6080,6082,6084],{"class":1052,"line":1875},[1050,6069,1368],{"class":1063},[1050,6071,2015],{"class":1063},[1050,6073,2018],{"class":1067},[1050,6075,1089],{"class":1088},[1050,6077,2023],{"class":1264},[1050,6079,2026],{"class":1088},[1050,6081,2029],{"class":1063},[1050,6083,2032],{"class":1067},[1050,6085,1567],{"class":1088},[1050,6087,6088],{"class":1052,"line":1913},[1050,6089,6090],{"class":1056},"        # Fetch all data concurrently\n",[1050,6092,6093,6096,6098,6100,6102,6104,6106,6108],{"class":1052,"line":1918},[1050,6094,6095],{"class":1067},"        user_data_task ",[1050,6097,1359],{"class":1088},[1050,6099,5512],{"class":1264},[1050,6101,1229],{"class":1088},[1050,6103,5517],{"class":1264},[1050,6105,1202],{"class":1088},[1050,6107,5522],{"class":1264},[1050,6109,1614],{"class":1088},[1050,6111,6112,6115,6117,6119,6121,6123,6125,6127],{"class":1052,"line":1951},[1050,6113,6114],{"class":1067},"        user_posts_task ",[1050,6116,1359],{"class":1088},[1050,6118,5698],{"class":1264},[1050,6120,1229],{"class":1088},[1050,6122,5517],{"class":1264},[1050,6124,1202],{"class":1088},[1050,6126,5522],{"class":1264},[1050,6128,1614],{"class":1088},[1050,6130,6131,6134,6136,6138,6140,6142,6144,6146],{"class":1052,"line":1967},[1050,6132,6133],{"class":1067},"        user_followers_task ",[1050,6135,1359],{"class":1088},[1050,6137,5872],{"class":1264},[1050,6139,1229],{"class":1088},[1050,6141,5517],{"class":1264},[1050,6143,1202],{"class":1088},[1050,6145,5522],{"class":1264},[1050,6147,1614],{"class":1088},[1050,6149,6150],{"class":1052,"line":1977},[1050,6151,1620],{"class":1067},[1050,6153,6154],{"class":1052,"line":2003},[1050,6155,6156],{"class":1056},"        # Wait for all tasks to complete\n",[1050,6158,6159,6162,6164,6167,6169,6172,6174,6176,6178,6180,6182],{"class":1052,"line":2009},[1050,6160,6161],{"class":1067},"        user_data",[1050,6163,1202],{"class":1088},[1050,6165,6166],{"class":1067}," user_posts",[1050,6168,1202],{"class":1088},[1050,6170,6171],{"class":1067}," user_followers ",[1050,6173,1359],{"class":1088},[1050,6175,1584],{"class":1063},[1050,6177,1259],{"class":1067},[1050,6179,1089],{"class":1088},[1050,6181,1719],{"class":1264},[1050,6183,4843],{"class":1088},[1050,6185,6186,6189],{"class":1052,"line":2037},[1050,6187,6188],{"class":1264},"            user_data_task",[1050,6190,1441],{"class":1088},[1050,6192,6193,6196],{"class":1052,"line":2070},[1050,6194,6195],{"class":1264},"            user_posts_task",[1050,6197,1441],{"class":1088},[1050,6199,6200,6203],{"class":1052,"line":2090},[1050,6201,6202],{"class":1264},"            user_followers_task",[1050,6204,1441],{"class":1088},[1050,6206,6207,6210,6212],{"class":1052,"line":2109},[1050,6208,6209],{"class":1395},"            return_exceptions",[1050,6211,1359],{"class":1088},[1050,6213,6214],{"class":1401},"True\n",[1050,6216,6217],{"class":1052,"line":2124},[1050,6218,6219],{"class":1088},"        )\n",[1050,6221,6222],{"class":1052,"line":2132},[1050,6223,1620],{"class":1067},[1050,6225,6226],{"class":1052,"line":2167},[1050,6227,6228],{"class":1056},"        # Handle exceptions\n",[1050,6230,6231,6233,6236,6238,6241,6243,6245],{"class":1052,"line":2172},[1050,6232,2722],{"class":1063},[1050,6234,6235],{"class":1840}," isinstance",[1050,6237,1229],{"class":1088},[1050,6239,6240],{"class":1264},"user_data",[1050,6242,1202],{"class":1088},[1050,6244,3932],{"class":1673},[1050,6246,1236],{"class":1088},[1050,6248,6249,6252,6254],{"class":1052,"line":2194},[1050,6250,6251],{"class":1067},"            user_data ",[1050,6253,1359],{"class":1088},[1050,6255,5635],{"class":1401},[1050,6257,6258,6260,6262,6264,6267,6269,6271],{"class":1052,"line":2200},[1050,6259,2722],{"class":1063},[1050,6261,6235],{"class":1840},[1050,6263,1229],{"class":1088},[1050,6265,6266],{"class":1264},"user_posts",[1050,6268,1202],{"class":1088},[1050,6270,3932],{"class":1673},[1050,6272,1236],{"class":1088},[1050,6274,6275,6278,6280],{"class":1052,"line":2209},[1050,6276,6277],{"class":1067},"            user_posts ",[1050,6279,1359],{"class":1088},[1050,6281,1362],{"class":1088},[1050,6283,6284,6286,6288,6290,6293,6295,6297],{"class":1052,"line":2214},[1050,6285,2722],{"class":1063},[1050,6287,6235],{"class":1840},[1050,6289,1229],{"class":1088},[1050,6291,6292],{"class":1264},"user_followers",[1050,6294,1202],{"class":1088},[1050,6296,3932],{"class":1673},[1050,6298,1236],{"class":1088},[1050,6300,6301,6304,6306],{"class":1052,"line":2222},[1050,6302,6303],{"class":1067},"            user_followers ",[1050,6305,1359],{"class":1088},[1050,6307,1362],{"class":1088},[1050,6309,6310],{"class":1052,"line":2241},[1050,6311,1620],{"class":1067},[1050,6313,6314],{"class":1052,"line":2264},[1050,6315,6316],{"class":1056},"        # Combine results\n",[1050,6318,6319,6322,6324],{"class":1052,"line":2270},[1050,6320,6321],{"class":1067},"        dashboard_data ",[1050,6323,1359],{"class":1088},[1050,6325,3229],{"class":1088},[1050,6327,6328,6330,6333,6335,6337,6340],{"class":1052,"line":2276},[1050,6329,1424],{"class":1292},[1050,6331,6332],{"class":1296},"user",[1050,6334,1293],{"class":1292},[1050,6336,1302],{"class":1088},[1050,6338,6339],{"class":1067}," user_data",[1050,6341,1441],{"class":1088},[1050,6343,6344,6346,6348,6350,6352,6354],{"class":1052,"line":2295},[1050,6345,1424],{"class":1292},[1050,6347,1513],{"class":1296},[1050,6349,1293],{"class":1292},[1050,6351,1302],{"class":1088},[1050,6353,6166],{"class":1067},[1050,6355,1441],{"class":1088},[1050,6357,6358,6360,6363,6365,6367,6370],{"class":1052,"line":2300},[1050,6359,1424],{"class":1292},[1050,6361,6362],{"class":1296},"followers",[1050,6364,1293],{"class":1292},[1050,6366,1302],{"class":1088},[1050,6368,6369],{"class":1067}," user_followers",[1050,6371,1441],{"class":1088},[1050,6373,6374,6376,6379,6381,6383],{"class":1052,"line":2341},[1050,6375,1424],{"class":1292},[1050,6377,6378],{"class":1296},"stats",[1050,6380,1293],{"class":1292},[1050,6382,1302],{"class":1088},[1050,6384,3229],{"class":1088},[1050,6386,6387,6389,6392,6394,6396,6398,6400,6402,6404,6407,6410,6413,6416],{"class":1052,"line":2346},[1050,6388,3067],{"class":1292},[1050,6390,6391],{"class":1296},"posts_count",[1050,6393,1293],{"class":1292},[1050,6395,1302],{"class":1088},[1050,6397,1841],{"class":1840},[1050,6399,1229],{"class":1088},[1050,6401,6266],{"class":1264},[1050,6403,1274],{"class":1088},[1050,6405,6406],{"class":1063}," if",[1050,6408,6409],{"class":1067}," user_posts ",[1050,6411,6412],{"class":1063},"else",[1050,6414,6415],{"class":1270}," 0",[1050,6417,1441],{"class":1088},[1050,6419,6420,6422,6425,6427,6429,6431,6433,6435,6437,6439,6441,6443],{"class":1052,"line":2361},[1050,6421,3067],{"class":1292},[1050,6423,6424],{"class":1296},"followers_count",[1050,6426,1293],{"class":1292},[1050,6428,1302],{"class":1088},[1050,6430,1841],{"class":1840},[1050,6432,1229],{"class":1088},[1050,6434,6292],{"class":1264},[1050,6436,1274],{"class":1088},[1050,6438,6406],{"class":1063},[1050,6440,6171],{"class":1067},[1050,6442,6412],{"class":1063},[1050,6444,6445],{"class":1270}," 0\n",[1050,6447,6448],{"class":1052,"line":2396},[1050,6449,3304],{"class":1088},[1050,6451,6452],{"class":1052,"line":2401},[1050,6453,5011],{"class":1088},[1050,6455,6456],{"class":1052,"line":2416},[1050,6457,1620],{"class":1067},[1050,6459,6460,6462,6464,6466,6469],{"class":1052,"line":2426},[1050,6461,1742],{"class":1063},[1050,6463,1286],{"class":1264},[1050,6465,1229],{"class":1088},[1050,6467,6468],{"class":1264},"dashboard_data",[1050,6470,1614],{"class":1088},[1050,6472,6473],{"class":1052,"line":2432},[1050,6474,1212],{"emptyLinePlaceholder":1211},[1050,6476,6477,6479,6481,6484,6486,6488],{"class":1052,"line":2450},[1050,6478,1219],{"class":1218},[1050,6480,1222],{"class":1218},[1050,6482,6483],{"class":1225}," batch_process_users",[1050,6485,1229],{"class":1088},[1050,6487,1233],{"class":1232},[1050,6489,1236],{"class":1088},[1050,6491,6492,6494,6497],{"class":1052,"line":3797},[1050,6493,1243],{"class":1242},[1050,6495,6496],{"class":1246},"Process multiple users concurrently.",[1050,6498,1250],{"class":1242},[1050,6500,6501,6504,6506,6508,6510,6512,6514,6516,6518,6520,6523,6525,6527,6530,6532,6535,6537,6539,6541,6543],{"class":1052,"line":3816},[1050,6502,6503],{"class":1067},"    user_ids ",[1050,6505,1359],{"class":1088},[1050,6507,1983],{"class":1067},[1050,6509,1089],{"class":1088},[1050,6511,1933],{"class":2877},[1050,6513,1089],{"class":1088},[1050,6515,2049],{"class":1264},[1050,6517,1229],{"class":1088},[1050,6519,1293],{"class":1292},[1050,6521,6522],{"class":1296},"user_ids",[1050,6524,1293],{"class":1292},[1050,6526,1202],{"class":1088},[1050,6528,6529],{"class":1292}," ''",[1050,6531,3184],{"class":1088},[1050,6533,6534],{"class":1264},"split",[1050,6536,1229],{"class":1088},[1050,6538,1293],{"class":1292},[1050,6540,1202],{"class":1296},[1050,6542,1293],{"class":1292},[1050,6544,1614],{"class":1088},[1050,6546,6547],{"class":1052,"line":3821},[1050,6548,1499],{"class":1067},[1050,6550,6551,6553,6556,6559,6562,6564,6567,6570,6573],{"class":1052,"line":3827},[1050,6552,1980],{"class":1063},[1050,6554,6555],{"class":1991}," not",[1050,6557,6558],{"class":1067}," user_ids ",[1050,6560,6561],{"class":1991},"or",[1050,6563,6558],{"class":1067},[1050,6565,6566],{"class":1991},"==",[1050,6568,6569],{"class":1088}," [",[1050,6571,6572],{"class":1292},"''",[1050,6574,6575],{"class":1088},"]:\n",[1050,6577,6578,6580,6582,6584,6586,6588,6590,6592,6594,6597,6599,6601,6603,6605,6607],{"class":1052,"line":3849},[1050,6579,1742],{"class":1063},[1050,6581,1286],{"class":1264},[1050,6583,1289],{"class":1088},[1050,6585,1293],{"class":1292},[1050,6587,1886],{"class":1296},[1050,6589,1293],{"class":1292},[1050,6591,1302],{"class":1088},[1050,6593,1305],{"class":1292},[1050,6595,6596],{"class":1296},"No user IDs provided",[1050,6598,1293],{"class":1292},[1050,6600,1900],{"class":1088},[1050,6602,1903],{"class":1395},[1050,6604,1359],{"class":1088},[1050,6606,2391],{"class":1270},[1050,6608,1614],{"class":1088},[1050,6610,6611],{"class":1052,"line":3854},[1050,6612,1499],{"class":1067},[1050,6614,6615,6617,6619,6621,6623,6625,6627,6629,6631],{"class":1052,"line":3876},[1050,6616,1368],{"class":1063},[1050,6618,2015],{"class":1063},[1050,6620,2018],{"class":1067},[1050,6622,1089],{"class":1088},[1050,6624,2023],{"class":1264},[1050,6626,2026],{"class":1088},[1050,6628,2029],{"class":1063},[1050,6630,2032],{"class":1067},[1050,6632,1567],{"class":1088},[1050,6634,6635],{"class":1052,"line":3881},[1050,6636,6637],{"class":1056},"        # Create tasks for all users\n",[1050,6639,6640,6643,6645],{"class":1052,"line":3894},[1050,6641,6642],{"class":1067},"        tasks ",[1050,6644,1359],{"class":1088},[1050,6646,1362],{"class":1088},[1050,6648,6649,6652,6655,6657,6660],{"class":1052,"line":3927},[1050,6650,6651],{"class":1063},"        for",[1050,6653,6654],{"class":1067}," user_id ",[1050,6656,1377],{"class":1063},[1050,6658,6659],{"class":1067}," user_ids",[1050,6661,1567],{"class":1088},[1050,6663,6664,6666,6668,6670,6673],{"class":1052,"line":3942},[1050,6665,5594],{"class":1063},[1050,6667,5522],{"class":1067},[1050,6669,1089],{"class":1088},[1050,6671,6672],{"class":1264},"strip",[1050,6674,4825],{"class":1088},[1050,6676,6677,6680,6682,6684,6686,6688,6690,6692,6694,6696],{"class":1052,"line":3979},[1050,6678,6679],{"class":1067},"                task ",[1050,6681,1359],{"class":1088},[1050,6683,5512],{"class":1264},[1050,6685,1229],{"class":1088},[1050,6687,5517],{"class":1264},[1050,6689,1202],{"class":1088},[1050,6691,5522],{"class":1264},[1050,6693,1089],{"class":1088},[1050,6695,6672],{"class":1264},[1050,6697,6698],{"class":1088},"())\n",[1050,6700,6701,6704,6706,6708,6710,6713],{"class":1052,"line":3984},[1050,6702,6703],{"class":1067},"                tasks",[1050,6705,1089],{"class":1088},[1050,6707,1415],{"class":1264},[1050,6709,1229],{"class":1088},[1050,6711,6712],{"class":1264},"task",[1050,6714,1614],{"class":1088},[1050,6716,6717],{"class":1052,"line":4016},[1050,6718,1620],{"class":1067},[1050,6720,6721],{"class":1052,"line":4026},[1050,6722,6723],{"class":1056},"        # Execute all tasks concurrently\n",[1050,6725,6726,6729,6731,6733,6735,6737,6739,6741,6743,6746,6748,6751,6753,6755],{"class":1052,"line":4033},[1050,6727,6728],{"class":1067},"        results ",[1050,6730,1359],{"class":1088},[1050,6732,1584],{"class":1063},[1050,6734,1259],{"class":1067},[1050,6736,1089],{"class":1088},[1050,6738,1719],{"class":1264},[1050,6740,1229],{"class":1088},[1050,6742,4292],{"class":1991},[1050,6744,6745],{"class":1264},"tasks",[1050,6747,1202],{"class":1088},[1050,6749,6750],{"class":1395}," return_exceptions",[1050,6752,1359],{"class":1088},[1050,6754,1402],{"class":1401},[1050,6756,1614],{"class":1088},[1050,6758,6759],{"class":1052,"line":4050},[1050,6760,1620],{"class":1067},[1050,6762,6763],{"class":1052,"line":4069},[1050,6764,6765],{"class":1056},"        # Process results\n",[1050,6767,6768,6771,6773],{"class":1052,"line":4074},[1050,6769,6770],{"class":1067},"        processed_users ",[1050,6772,1359],{"class":1088},[1050,6774,1362],{"class":1088},[1050,6776,6777,6779,6782,6784,6787,6789,6792,6794,6797],{"class":1052,"line":4108},[1050,6778,6651],{"class":1063},[1050,6780,6781],{"class":1067}," i",[1050,6783,1202],{"class":1088},[1050,6785,6786],{"class":1067}," result ",[1050,6788,1377],{"class":1063},[1050,6790,6791],{"class":1840}," enumerate",[1050,6793,1229],{"class":1088},[1050,6795,6796],{"class":1264},"results",[1050,6798,1236],{"class":1088},[1050,6800,6801,6803,6805,6807,6809,6811,6813],{"class":1052,"line":4113},[1050,6802,5594],{"class":1063},[1050,6804,6235],{"class":1840},[1050,6806,1229],{"class":1088},[1050,6808,2312],{"class":1264},[1050,6810,1202],{"class":1088},[1050,6812,3932],{"class":1673},[1050,6814,1236],{"class":1088},[1050,6816,6817,6820,6822,6824],{"class":1052,"line":4126},[1050,6818,6819],{"class":1067},"                processed_users",[1050,6821,1089],{"class":1088},[1050,6823,1415],{"class":1264},[1050,6825,1418],{"class":1088},[1050,6827,6828,6831,6833,6835,6837,6839,6841,6844],{"class":1052,"line":4131},[1050,6829,6830],{"class":1292},"                    '",[1050,6832,5550],{"class":1296},[1050,6834,1293],{"class":1292},[1050,6836,1302],{"class":1088},[1050,6838,6659],{"class":1264},[1050,6840,4856],{"class":1088},[1050,6842,6843],{"class":1264},"i",[1050,6845,4865],{"class":1088},[1050,6847,6848,6850,6852,6854,6856,6858,6860,6862],{"class":1052,"line":4144},[1050,6849,6830],{"class":1292},[1050,6851,1886],{"class":1296},[1050,6853,1293],{"class":1292},[1050,6855,1302],{"class":1088},[1050,6857,3959],{"class":1673},[1050,6859,1229],{"class":1088},[1050,6861,2312],{"class":1264},[1050,6863,1614],{"class":1088},[1050,6865,6866],{"class":1052,"line":4177},[1050,6867,6868],{"class":1088},"                })\n",[1050,6870,6871,6873],{"class":1052,"line":4190},[1050,6872,5626],{"class":1063},[1050,6874,1567],{"class":1088},[1050,6876,6877,6879,6881,6883],{"class":1052,"line":4223},[1050,6878,6819],{"class":1067},[1050,6880,1089],{"class":1088},[1050,6882,1415],{"class":1264},[1050,6884,1418],{"class":1088},[1050,6886,6887,6889,6891,6893,6895,6897,6899,6901],{"class":1052,"line":4228},[1050,6888,6830],{"class":1292},[1050,6890,5550],{"class":1296},[1050,6892,1293],{"class":1292},[1050,6894,1302],{"class":1088},[1050,6896,6659],{"class":1264},[1050,6898,4856],{"class":1088},[1050,6900,6843],{"class":1264},[1050,6902,4865],{"class":1088},[1050,6904,6905,6907,6909,6911,6913],{"class":1052,"line":4260},[1050,6906,6830],{"class":1292},[1050,6908,2119],{"class":1296},[1050,6910,1293],{"class":1292},[1050,6912,1302],{"class":1088},[1050,6914,6915],{"class":1264}," result\n",[1050,6917,6918],{"class":1052,"line":4270},[1050,6919,6868],{"class":1088},[1050,6921,6922],{"class":1052,"line":4277},[1050,6923,1620],{"class":1067},[1050,6925,6926,6928,6930],{"class":1052,"line":4305},[1050,6927,1742],{"class":1063},[1050,6929,1286],{"class":1264},[1050,6931,1418],{"class":1088},[1050,6933,6934,6936,6939,6941,6943,6946],{"class":1052,"line":4340},[1050,6935,1424],{"class":1292},[1050,6937,6938],{"class":1296},"processed_users",[1050,6940,1293],{"class":1292},[1050,6942,1302],{"class":1088},[1050,6944,6945],{"class":1264}," processed_users",[1050,6947,1441],{"class":1088},[1050,6949,6950,6952,6955,6957,6959,6961,6963,6965],{"class":1052,"line":4345},[1050,6951,1424],{"class":1292},[1050,6953,6954],{"class":1296},"total_processed",[1050,6956,1293],{"class":1292},[1050,6958,1302],{"class":1088},[1050,6960,1841],{"class":1840},[1050,6962,1229],{"class":1088},[1050,6964,6938],{"class":1264},[1050,6966,1614],{"class":1088},[1050,6968,6969],{"class":1052,"line":4358},[1050,6970,1493],{"class":1088},[1035,6972,6974],{"id":6973},"database-operations-with-concurrency","Database Operations with Concurrency",[1040,6976,6978],{"className":1042,"code":6977,"language":1044,"meta":1045,"style":1045},"# views.py\nimport asyncio\nfrom django.http import JsonResponse\nfrom asgiref.sync import sync_to_async\nfrom django.db import transaction\nfrom .models import Post, Comment, User\n\nasync def concurrent_database_operations(request):\n    \"\"\"Perform multiple database operations concurrently.\"\"\"\n    \n    # Define async database operations\n    @sync_to_async\n    def get_recent_posts():\n        return list(Post.objects.filter(published=True).order_by('-created_at')[:10])\n    \n    @sync_to_async\n    def get_popular_posts():\n        return list(Post.objects.filter(published=True).order_by('-views')[:10])\n    \n    @sync_to_async\n    def get_recent_comments():\n        return list(Comment.objects.select_related('post').order_by('-created_at')[:10])\n    \n    @sync_to_async\n    def get_active_users():\n        return list(User.objects.filter(is_active=True).order_by('-last_login')[:10])\n    \n    # Execute all queries concurrently\n    recent_posts, popular_posts, recent_comments, active_users = await asyncio.gather(\n        get_recent_posts(),\n        get_popular_posts(),\n        get_recent_comments(),\n        get_active_users()\n    )\n    \n    # Format response\n    return JsonResponse({\n        'recent_posts': [{'id': p.id, 'title': p.title} for p in recent_posts],\n        'popular_posts': [{'id': p.id, 'title': p.title, 'views': p.views} for p in popular_posts],\n        'recent_comments': [{'id': c.id, 'post_title': c.post.title} for c in recent_comments],\n        'active_users': [{'id': u.id, 'username': u.username} for u in active_users]\n    })\n\nasync def bulk_create_posts(request):\n    \"\"\"Create multiple posts concurrently.\"\"\"\n    import json\n    \n    try:\n        body = await request.aread()\n        data = json.loads(body)\n        posts_data = data.get('posts', [])\n        \n        if not posts_data:\n            return JsonResponse({'error': 'No posts data provided'}, status=400)\n        \n        # Define async post creation function\n        @sync_to_async\n        def create_post(post_data):\n            return Post.objects.create(\n                title=post_data['title'],\n                content=post_data['content'],\n                published=post_data.get('published', False)\n            )\n        \n        # Create all posts concurrently\n        tasks = [create_post(post_data) for post_data in posts_data]\n        created_posts = await asyncio.gather(*tasks, return_exceptions=True)\n        \n        # Process results\n        successful_posts = []\n        failed_posts = []\n        \n        for i, result in enumerate(created_posts):\n            if isinstance(result, Exception):\n                failed_posts.append({\n                    'index': i,\n                    'error': str(result),\n                    'data': posts_data[i]\n                })\n            else:\n                successful_posts.append({\n                    'id': result.id,\n                    'title': result.title,\n                    'slug': result.slug\n                })\n        \n        return JsonResponse({\n            'successful_posts': successful_posts,\n            'failed_posts': failed_posts,\n            'total_created': len(successful_posts)\n        })\n    \n    except json.JSONDecodeError:\n        return JsonResponse({'error': 'Invalid JSON'}, status=400)\n    except Exception as e:\n        return JsonResponse({'error': str(e)}, status=500)\n",[1047,6979,6980,6984,6990,7004,7018,7034,7055,7059,7074,7083,7087,7092,7099,7109,7157,7161,7167,7176,7221,7225,7231,7240,7286,7290,7296,7305,7352,7356,7361,7393,7401,7408,7415,7422,7427,7431,7436,7444,7504,7575,7637,7695,7700,7704,7719,7728,7735,7739,7745,7762,7781,7807,7811,7822,7855,7859,7864,7870,7883,7899,7917,7935,7961,7965,7969,7974,8002,8033,8037,8041,8050,8059,8063,8084,8100,8111,8126,8145,8163,8167,8173,8184,8202,8220,8236,8240,8244,8252,8268,8284,8303,8307,8311,8323,8355,8367],{"__ignoreMap":1045},[1050,6981,6982],{"class":1052,"line":1053},[1050,6983,1057],{"class":1056},[1050,6985,6986,6988],{"class":1052,"line":1060},[1050,6987,1064],{"class":1063},[1050,6989,1068],{"class":1067},[1050,6991,6992,6994,6996,6998,7000,7002],{"class":1052,"line":1071},[1050,6993,1082],{"class":1063},[1050,6995,1085],{"class":1067},[1050,6997,1089],{"class":1088},[1050,6999,1092],{"class":1067},[1050,7001,1064],{"class":1063},[1050,7003,1097],{"class":1067},[1050,7005,7006,7008,7010,7012,7014,7016],{"class":1052,"line":1079},[1050,7007,1082],{"class":1063},[1050,7009,1173],{"class":1067},[1050,7011,1089],{"class":1088},[1050,7013,1178],{"class":1067},[1050,7015,1064],{"class":1063},[1050,7017,1183],{"class":1067},[1050,7019,7020,7022,7024,7026,7029,7031],{"class":1052,"line":1100},[1050,7021,1082],{"class":1063},[1050,7023,1085],{"class":1067},[1050,7025,1089],{"class":1088},[1050,7027,7028],{"class":1067},"db ",[1050,7030,1064],{"class":1063},[1050,7032,7033],{"class":1067}," transaction\n",[1050,7035,7036,7038,7040,7042,7044,7046,7048,7051,7053],{"class":1052,"line":1117},[1050,7037,1082],{"class":1063},[1050,7039,1191],{"class":1088},[1050,7041,1194],{"class":1067},[1050,7043,1064],{"class":1063},[1050,7045,1199],{"class":1067},[1050,7047,1202],{"class":1088},[1050,7049,7050],{"class":1067}," Comment",[1050,7052,1202],{"class":1088},[1050,7054,1205],{"class":1067},[1050,7056,7057],{"class":1052,"line":1143},[1050,7058,1212],{"emptyLinePlaceholder":1211},[1050,7060,7061,7063,7065,7068,7070,7072],{"class":1052,"line":1168},[1050,7062,1219],{"class":1218},[1050,7064,1222],{"class":1218},[1050,7066,7067],{"class":1225}," concurrent_database_operations",[1050,7069,1229],{"class":1088},[1050,7071,1233],{"class":1232},[1050,7073,1236],{"class":1088},[1050,7075,7076,7078,7081],{"class":1052,"line":1186},[1050,7077,1243],{"class":1242},[1050,7079,7080],{"class":1246},"Perform multiple database operations concurrently.",[1050,7082,1250],{"class":1242},[1050,7084,7085],{"class":1052,"line":1208},[1050,7086,1499],{"class":1067},[1050,7088,7089],{"class":1052,"line":1215},[1050,7090,7091],{"class":1056},"    # Define async database operations\n",[1050,7093,7094,7097],{"class":1052,"line":1239},[1050,7095,7096],{"class":1088},"    @",[1050,7098,4813],{"class":1225},[1050,7100,7101,7104,7107],{"class":1052,"line":1253},[1050,7102,7103],{"class":1218},"    def",[1050,7105,7106],{"class":1225}," get_recent_posts",[1050,7108,4825],{"class":1088},[1050,7110,7111,7113,7115,7117,7119,7121,7123,7125,7127,7129,7131,7133,7135,7137,7140,7142,7144,7147,7149,7152,7155],{"class":1052,"line":1280},[1050,7112,1742],{"class":1063},[1050,7114,1674],{"class":1673},[1050,7116,1229],{"class":1088},[1050,7118,1592],{"class":1264},[1050,7120,1089],{"class":1088},[1050,7122,1385],{"class":1384},[1050,7124,1089],{"class":1088},[1050,7126,1390],{"class":1264},[1050,7128,1229],{"class":1088},[1050,7130,1396],{"class":1395},[1050,7132,1359],{"class":1088},[1050,7134,1402],{"class":1401},[1050,7136,3184],{"class":1088},[1050,7138,7139],{"class":1264},"order_by",[1050,7141,1229],{"class":1088},[1050,7143,1293],{"class":1292},[1050,7145,7146],{"class":1296},"-created_at",[1050,7148,1293],{"class":1292},[1050,7150,7151],{"class":1088},")[:",[1050,7153,7154],{"class":1270},"10",[1050,7156,1948],{"class":1088},[1050,7158,7159],{"class":1052,"line":1316},[1050,7160,1499],{"class":1067},[1050,7162,7163,7165],{"class":1052,"line":1321},[1050,7164,7096],{"class":1088},[1050,7166,4813],{"class":1225},[1050,7168,7169,7171,7174],{"class":1052,"line":1337},[1050,7170,7103],{"class":1218},[1050,7172,7173],{"class":1225}," get_popular_posts",[1050,7175,4825],{"class":1088},[1050,7177,7178,7180,7182,7184,7186,7188,7190,7192,7194,7196,7198,7200,7202,7204,7206,7208,7210,7213,7215,7217,7219],{"class":1052,"line":1347},[1050,7179,1742],{"class":1063},[1050,7181,1674],{"class":1673},[1050,7183,1229],{"class":1088},[1050,7185,1592],{"class":1264},[1050,7187,1089],{"class":1088},[1050,7189,1385],{"class":1384},[1050,7191,1089],{"class":1088},[1050,7193,1390],{"class":1264},[1050,7195,1229],{"class":1088},[1050,7197,1396],{"class":1395},[1050,7199,1359],{"class":1088},[1050,7201,1402],{"class":1401},[1050,7203,3184],{"class":1088},[1050,7205,7139],{"class":1264},[1050,7207,1229],{"class":1088},[1050,7209,1293],{"class":1292},[1050,7211,7212],{"class":1296},"-views",[1050,7214,1293],{"class":1292},[1050,7216,7151],{"class":1088},[1050,7218,7154],{"class":1270},[1050,7220,1948],{"class":1088},[1050,7222,7223],{"class":1052,"line":1353},[1050,7224,1499],{"class":1067},[1050,7226,7227,7229],{"class":1052,"line":1365},[1050,7228,7096],{"class":1088},[1050,7230,4813],{"class":1225},[1050,7232,7233,7235,7238],{"class":1052,"line":1407},[1050,7234,7103],{"class":1218},[1050,7236,7237],{"class":1225}," get_recent_comments",[1050,7239,4825],{"class":1088},[1050,7241,7242,7244,7246,7248,7251,7253,7255,7257,7260,7262,7264,7266,7268,7270,7272,7274,7276,7278,7280,7282,7284],{"class":1052,"line":1421},[1050,7243,1742],{"class":1063},[1050,7245,1674],{"class":1673},[1050,7247,1229],{"class":1088},[1050,7249,7250],{"class":1264},"Comment",[1050,7252,1089],{"class":1088},[1050,7254,1385],{"class":1384},[1050,7256,1089],{"class":1088},[1050,7258,7259],{"class":1264},"select_related",[1050,7261,1229],{"class":1088},[1050,7263,1293],{"class":1292},[1050,7265,1679],{"class":1296},[1050,7267,1293],{"class":1292},[1050,7269,3184],{"class":1088},[1050,7271,7139],{"class":1264},[1050,7273,1229],{"class":1088},[1050,7275,1293],{"class":1292},[1050,7277,7146],{"class":1296},[1050,7279,1293],{"class":1292},[1050,7281,7151],{"class":1088},[1050,7283,7154],{"class":1270},[1050,7285,1948],{"class":1088},[1050,7287,7288],{"class":1052,"line":1444},[1050,7289,1499],{"class":1067},[1050,7291,7292,7294],{"class":1052,"line":1464},[1050,7293,7096],{"class":1088},[1050,7295,4813],{"class":1225},[1050,7297,7298,7300,7303],{"class":1052,"line":1490},[1050,7299,7103],{"class":1218},[1050,7301,7302],{"class":1225}," get_active_users",[1050,7304,4825],{"class":1088},[1050,7306,7307,7309,7311,7313,7316,7318,7320,7322,7324,7326,7329,7331,7333,7335,7337,7339,7341,7344,7346,7348,7350],{"class":1052,"line":1496},[1050,7308,1742],{"class":1063},[1050,7310,1674],{"class":1673},[1050,7312,1229],{"class":1088},[1050,7314,7315],{"class":1264},"User",[1050,7317,1089],{"class":1088},[1050,7319,1385],{"class":1384},[1050,7321,1089],{"class":1088},[1050,7323,1390],{"class":1264},[1050,7325,1229],{"class":1088},[1050,7327,7328],{"class":1395},"is_active",[1050,7330,1359],{"class":1088},[1050,7332,1402],{"class":1401},[1050,7334,3184],{"class":1088},[1050,7336,7139],{"class":1264},[1050,7338,1229],{"class":1088},[1050,7340,1293],{"class":1292},[1050,7342,7343],{"class":1296},"-last_login",[1050,7345,1293],{"class":1292},[1050,7347,7151],{"class":1088},[1050,7349,7154],{"class":1270},[1050,7351,1948],{"class":1088},[1050,7353,7354],{"class":1052,"line":1502},[1050,7355,1499],{"class":1067},[1050,7357,7358],{"class":1052,"line":1525},[1050,7359,7360],{"class":1056},"    # Execute all queries concurrently\n",[1050,7362,7363,7366,7368,7371,7373,7376,7378,7381,7383,7385,7387,7389,7391],{"class":1052,"line":1530},[1050,7364,7365],{"class":1067},"    recent_posts",[1050,7367,1202],{"class":1088},[1050,7369,7370],{"class":1067}," popular_posts",[1050,7372,1202],{"class":1088},[1050,7374,7375],{"class":1067}," recent_comments",[1050,7377,1202],{"class":1088},[1050,7379,7380],{"class":1067}," active_users ",[1050,7382,1359],{"class":1088},[1050,7384,1584],{"class":1063},[1050,7386,1259],{"class":1067},[1050,7388,1089],{"class":1088},[1050,7390,1719],{"class":1264},[1050,7392,4843],{"class":1088},[1050,7394,7395,7398],{"class":1052,"line":1551},[1050,7396,7397],{"class":1264},"        get_recent_posts",[1050,7399,7400],{"class":1088},"(),\n",[1050,7402,7403,7406],{"class":1052,"line":1561},[1050,7404,7405],{"class":1264},"        get_popular_posts",[1050,7407,7400],{"class":1088},[1050,7409,7410,7413],{"class":1052,"line":1570},[1050,7411,7412],{"class":1264},"        get_recent_comments",[1050,7414,7400],{"class":1088},[1050,7416,7417,7420],{"class":1052,"line":1576},[1050,7418,7419],{"class":1264},"        get_active_users",[1050,7421,1487],{"class":1088},[1050,7423,7424],{"class":1052,"line":1617},[1050,7425,7426],{"class":1088},"    )\n",[1050,7428,7429],{"class":1052,"line":1623},[1050,7430,1499],{"class":1067},[1050,7432,7433],{"class":1052,"line":1629},[1050,7434,7435],{"class":1056},"    # Format response\n",[1050,7437,7438,7440,7442],{"class":1052,"line":1657},[1050,7439,1283],{"class":1063},[1050,7441,1286],{"class":1264},[1050,7443,1418],{"class":1088},[1050,7445,7446,7449,7452,7454,7456,7459,7461,7463,7465,7467,7470,7472,7474,7476,7478,7480,7482,7484,7486,7488,7490,7492,7494,7497,7499,7502],{"class":1052,"line":1695},[1050,7447,7448],{"class":1292},"        '",[1050,7450,7451],{"class":1296},"recent_posts",[1050,7453,1293],{"class":1292},[1050,7455,1302],{"class":1088},[1050,7457,7458],{"class":1088}," [{",[1050,7460,1293],{"class":1292},[1050,7462,1427],{"class":1296},[1050,7464,1293],{"class":1292},[1050,7466,1302],{"class":1088},[1050,7468,7469],{"class":1264}," p",[1050,7471,1089],{"class":1088},[1050,7473,1427],{"class":1384},[1050,7475,1202],{"class":1088},[1050,7477,1305],{"class":1292},[1050,7479,1449],{"class":1296},[1050,7481,1293],{"class":1292},[1050,7483,1302],{"class":1088},[1050,7485,7469],{"class":1264},[1050,7487,1089],{"class":1088},[1050,7489,1449],{"class":1384},[1050,7491,2490],{"class":1088},[1050,7493,1371],{"class":1063},[1050,7495,7496],{"class":1264}," p ",[1050,7498,1377],{"class":1063},[1050,7500,7501],{"class":1264}," recent_posts",[1050,7503,4865],{"class":1088},[1050,7505,7506,7508,7511,7513,7515,7517,7519,7521,7523,7525,7527,7529,7531,7533,7535,7537,7539,7541,7543,7545,7547,7549,7551,7553,7555,7557,7559,7561,7563,7565,7567,7569,7571,7573],{"class":1052,"line":1700},[1050,7507,7448],{"class":1292},[1050,7509,7510],{"class":1296},"popular_posts",[1050,7512,1293],{"class":1292},[1050,7514,1302],{"class":1088},[1050,7516,7458],{"class":1088},[1050,7518,1293],{"class":1292},[1050,7520,1427],{"class":1296},[1050,7522,1293],{"class":1292},[1050,7524,1302],{"class":1088},[1050,7526,7469],{"class":1264},[1050,7528,1089],{"class":1088},[1050,7530,1427],{"class":1384},[1050,7532,1202],{"class":1088},[1050,7534,1305],{"class":1292},[1050,7536,1449],{"class":1296},[1050,7538,1293],{"class":1292},[1050,7540,1302],{"class":1088},[1050,7542,7469],{"class":1264},[1050,7544,1089],{"class":1088},[1050,7546,1449],{"class":1384},[1050,7548,1202],{"class":1088},[1050,7550,1305],{"class":1292},[1050,7552,1126],{"class":1296},[1050,7554,1293],{"class":1292},[1050,7556,1302],{"class":1088},[1050,7558,7469],{"class":1264},[1050,7560,1089],{"class":1088},[1050,7562,1126],{"class":1384},[1050,7564,2490],{"class":1088},[1050,7566,1371],{"class":1063},[1050,7568,7496],{"class":1264},[1050,7570,1377],{"class":1063},[1050,7572,7370],{"class":1264},[1050,7574,4865],{"class":1088},[1050,7576,7577,7579,7582,7584,7586,7588,7590,7592,7594,7596,7599,7601,7603,7605,7607,7610,7612,7614,7616,7618,7620,7622,7624,7626,7628,7631,7633,7635],{"class":1052,"line":1734},[1050,7578,7448],{"class":1292},[1050,7580,7581],{"class":1296},"recent_comments",[1050,7583,1293],{"class":1292},[1050,7585,1302],{"class":1088},[1050,7587,7458],{"class":1088},[1050,7589,1293],{"class":1292},[1050,7591,1427],{"class":1296},[1050,7593,1293],{"class":1292},[1050,7595,1302],{"class":1088},[1050,7597,7598],{"class":1264}," c",[1050,7600,1089],{"class":1088},[1050,7602,1427],{"class":1384},[1050,7604,1202],{"class":1088},[1050,7606,1305],{"class":1292},[1050,7608,7609],{"class":1296},"post_title",[1050,7611,1293],{"class":1292},[1050,7613,1302],{"class":1088},[1050,7615,7598],{"class":1264},[1050,7617,1089],{"class":1088},[1050,7619,1679],{"class":1384},[1050,7621,1089],{"class":1088},[1050,7623,1449],{"class":1384},[1050,7625,2490],{"class":1088},[1050,7627,1371],{"class":1063},[1050,7629,7630],{"class":1264}," c ",[1050,7632,1377],{"class":1063},[1050,7634,7375],{"class":1264},[1050,7636,4865],{"class":1088},[1050,7638,7639,7641,7644,7646,7648,7650,7652,7654,7656,7658,7661,7663,7665,7667,7669,7671,7673,7675,7677,7679,7681,7683,7685,7688,7690,7693],{"class":1052,"line":1739},[1050,7640,7448],{"class":1292},[1050,7642,7643],{"class":1296},"active_users",[1050,7645,1293],{"class":1292},[1050,7647,1302],{"class":1088},[1050,7649,7458],{"class":1088},[1050,7651,1293],{"class":1292},[1050,7653,1427],{"class":1296},[1050,7655,1293],{"class":1292},[1050,7657,1302],{"class":1088},[1050,7659,7660],{"class":1264}," u",[1050,7662,1089],{"class":1088},[1050,7664,1427],{"class":1384},[1050,7666,1202],{"class":1088},[1050,7668,1305],{"class":1292},[1050,7670,1823],{"class":1296},[1050,7672,1293],{"class":1292},[1050,7674,1302],{"class":1088},[1050,7676,7660],{"class":1264},[1050,7678,1089],{"class":1088},[1050,7680,1823],{"class":1384},[1050,7682,2490],{"class":1088},[1050,7684,1371],{"class":1063},[1050,7686,7687],{"class":1264}," u ",[1050,7689,1377],{"class":1063},[1050,7691,7692],{"class":1264}," active_users",[1050,7694,3032],{"class":1088},[1050,7696,7697],{"class":1052,"line":1749},[1050,7698,7699],{"class":1088},"    })\n",[1050,7701,7702],{"class":1052,"line":1768},[1050,7703,1212],{"emptyLinePlaceholder":1211},[1050,7705,7706,7708,7710,7713,7715,7717],{"class":1052,"line":1787},[1050,7707,1219],{"class":1218},[1050,7709,1222],{"class":1218},[1050,7711,7712],{"class":1225}," bulk_create_posts",[1050,7714,1229],{"class":1088},[1050,7716,1233],{"class":1232},[1050,7718,1236],{"class":1088},[1050,7720,7721,7723,7726],{"class":1052,"line":1807},[1050,7722,1243],{"class":1242},[1050,7724,7725],{"class":1246},"Create multiple posts concurrently.",[1050,7727,1250],{"class":1242},[1050,7729,7730,7733],{"class":1052,"line":1828},[1050,7731,7732],{"class":1063},"    import",[1050,7734,2206],{"class":1067},[1050,7736,7737],{"class":1052,"line":1850},[1050,7738,1499],{"class":1067},[1050,7740,7741,7743],{"class":1052,"line":1855},[1050,7742,1564],{"class":1063},[1050,7744,1567],{"class":1088},[1050,7746,7747,7750,7752,7754,7756,7758,7760],{"class":1052,"line":1860},[1050,7748,7749],{"class":1067},"        body ",[1050,7751,1359],{"class":1088},[1050,7753,1584],{"class":1063},[1050,7755,1983],{"class":1067},[1050,7757,1089],{"class":1088},[1050,7759,2236],{"class":1264},[1050,7761,1487],{"class":1088},[1050,7763,7764,7767,7769,7771,7773,7775,7777,7779],{"class":1052,"line":1875},[1050,7765,7766],{"class":1067},"        data ",[1050,7768,1359],{"class":1088},[1050,7770,2249],{"class":1067},[1050,7772,1089],{"class":1088},[1050,7774,2254],{"class":1264},[1050,7776,1229],{"class":1088},[1050,7778,2259],{"class":1264},[1050,7780,1614],{"class":1088},[1050,7782,7783,7786,7788,7790,7792,7794,7796,7798,7800,7802,7804],{"class":1052,"line":1913},[1050,7784,7785],{"class":1067},"        posts_data ",[1050,7787,1359],{"class":1088},[1050,7789,4412],{"class":1067},[1050,7791,1089],{"class":1088},[1050,7793,2049],{"class":1264},[1050,7795,1229],{"class":1088},[1050,7797,1293],{"class":1292},[1050,7799,1513],{"class":1296},[1050,7801,1293],{"class":1292},[1050,7803,1202],{"class":1088},[1050,7805,7806],{"class":1088}," [])\n",[1050,7808,7809],{"class":1052,"line":1918},[1050,7810,1620],{"class":1067},[1050,7812,7813,7815,7817,7820],{"class":1052,"line":1951},[1050,7814,2722],{"class":1063},[1050,7816,6555],{"class":1991},[1050,7818,7819],{"class":1067}," posts_data",[1050,7821,1567],{"class":1088},[1050,7823,7824,7826,7828,7830,7832,7834,7836,7838,7840,7843,7845,7847,7849,7851,7853],{"class":1052,"line":1967},[1050,7825,2303],{"class":1063},[1050,7827,1286],{"class":1264},[1050,7829,1289],{"class":1088},[1050,7831,1293],{"class":1292},[1050,7833,1886],{"class":1296},[1050,7835,1293],{"class":1292},[1050,7837,1302],{"class":1088},[1050,7839,1305],{"class":1292},[1050,7841,7842],{"class":1296},"No posts data provided",[1050,7844,1293],{"class":1292},[1050,7846,1900],{"class":1088},[1050,7848,1903],{"class":1395},[1050,7850,1359],{"class":1088},[1050,7852,2391],{"class":1270},[1050,7854,1614],{"class":1088},[1050,7856,7857],{"class":1052,"line":1977},[1050,7858,1620],{"class":1067},[1050,7860,7861],{"class":1052,"line":2003},[1050,7862,7863],{"class":1056},"        # Define async post creation function\n",[1050,7865,7866,7868],{"class":1052,"line":2009},[1050,7867,4810],{"class":1088},[1050,7869,4813],{"class":1225},[1050,7871,7872,7874,7876,7878,7881],{"class":1052,"line":2037},[1050,7873,4819],{"class":1218},[1050,7875,4822],{"class":1225},[1050,7877,1229],{"class":1088},[1050,7879,7880],{"class":1232},"post_data",[1050,7882,1236],{"class":1088},[1050,7884,7885,7887,7889,7891,7893,7895,7897],{"class":1052,"line":2070},[1050,7886,2303],{"class":1063},[1050,7888,1199],{"class":1067},[1050,7890,1089],{"class":1088},[1050,7892,1385],{"class":1384},[1050,7894,1089],{"class":1088},[1050,7896,3492],{"class":1264},[1050,7898,4843],{"class":1088},[1050,7900,7901,7903,7905,7907,7909,7911,7913,7915],{"class":1052,"line":2090},[1050,7902,4849],{"class":1395},[1050,7904,1359],{"class":1088},[1050,7906,7880],{"class":1264},[1050,7908,4856],{"class":1088},[1050,7910,1293],{"class":1292},[1050,7912,1449],{"class":1296},[1050,7914,1293],{"class":1292},[1050,7916,4865],{"class":1088},[1050,7918,7919,7921,7923,7925,7927,7929,7931,7933],{"class":1052,"line":2109},[1050,7920,4871],{"class":1395},[1050,7922,1359],{"class":1088},[1050,7924,7880],{"class":1264},[1050,7926,4856],{"class":1088},[1050,7928,1293],{"class":1292},[1050,7930,1792],{"class":1296},[1050,7932,1293],{"class":1292},[1050,7934,4865],{"class":1088},[1050,7936,7937,7939,7941,7943,7945,7947,7949,7951,7953,7955,7957,7959],{"class":1052,"line":2124},[1050,7938,4891],{"class":1395},[1050,7940,1359],{"class":1088},[1050,7942,7880],{"class":1264},[1050,7944,1089],{"class":1088},[1050,7946,2049],{"class":1264},[1050,7948,1229],{"class":1088},[1050,7950,1293],{"class":1292},[1050,7952,1396],{"class":1296},[1050,7954,1293],{"class":1292},[1050,7956,1202],{"class":1088},[1050,7958,4912],{"class":1401},[1050,7960,1614],{"class":1088},[1050,7962,7963],{"class":1052,"line":2132},[1050,7964,4920],{"class":1088},[1050,7966,7967],{"class":1052,"line":2167},[1050,7968,1620],{"class":1067},[1050,7970,7971],{"class":1052,"line":2172},[1050,7972,7973],{"class":1056},"        # Create all posts concurrently\n",[1050,7975,7976,7978,7980,7982,7985,7987,7989,7991,7993,7996,7998,8000],{"class":1052,"line":2194},[1050,7977,6642],{"class":1067},[1050,7979,1359],{"class":1088},[1050,7981,6569],{"class":1088},[1050,7983,7984],{"class":1264},"create_post",[1050,7986,1229],{"class":1088},[1050,7988,7880],{"class":1264},[1050,7990,1274],{"class":1088},[1050,7992,1371],{"class":1063},[1050,7994,7995],{"class":1067}," post_data ",[1050,7997,1377],{"class":1063},[1050,7999,7819],{"class":1067},[1050,8001,3032],{"class":1088},[1050,8003,8004,8007,8009,8011,8013,8015,8017,8019,8021,8023,8025,8027,8029,8031],{"class":1052,"line":2200},[1050,8005,8006],{"class":1067},"        created_posts ",[1050,8008,1359],{"class":1088},[1050,8010,1584],{"class":1063},[1050,8012,1259],{"class":1067},[1050,8014,1089],{"class":1088},[1050,8016,1719],{"class":1264},[1050,8018,1229],{"class":1088},[1050,8020,4292],{"class":1991},[1050,8022,6745],{"class":1264},[1050,8024,1202],{"class":1088},[1050,8026,6750],{"class":1395},[1050,8028,1359],{"class":1088},[1050,8030,1402],{"class":1401},[1050,8032,1614],{"class":1088},[1050,8034,8035],{"class":1052,"line":2209},[1050,8036,1620],{"class":1067},[1050,8038,8039],{"class":1052,"line":2214},[1050,8040,6765],{"class":1056},[1050,8042,8043,8046,8048],{"class":1052,"line":2222},[1050,8044,8045],{"class":1067},"        successful_posts ",[1050,8047,1359],{"class":1088},[1050,8049,1362],{"class":1088},[1050,8051,8052,8055,8057],{"class":1052,"line":2241},[1050,8053,8054],{"class":1067},"        failed_posts ",[1050,8056,1359],{"class":1088},[1050,8058,1362],{"class":1088},[1050,8060,8061],{"class":1052,"line":2264},[1050,8062,1620],{"class":1067},[1050,8064,8065,8067,8069,8071,8073,8075,8077,8079,8082],{"class":1052,"line":2270},[1050,8066,6651],{"class":1063},[1050,8068,6781],{"class":1067},[1050,8070,1202],{"class":1088},[1050,8072,6786],{"class":1067},[1050,8074,1377],{"class":1063},[1050,8076,6791],{"class":1840},[1050,8078,1229],{"class":1088},[1050,8080,8081],{"class":1264},"created_posts",[1050,8083,1236],{"class":1088},[1050,8085,8086,8088,8090,8092,8094,8096,8098],{"class":1052,"line":2276},[1050,8087,5594],{"class":1063},[1050,8089,6235],{"class":1840},[1050,8091,1229],{"class":1088},[1050,8093,2312],{"class":1264},[1050,8095,1202],{"class":1088},[1050,8097,3932],{"class":1673},[1050,8099,1236],{"class":1088},[1050,8101,8102,8105,8107,8109],{"class":1052,"line":2295},[1050,8103,8104],{"class":1067},"                failed_posts",[1050,8106,1089],{"class":1088},[1050,8108,1415],{"class":1264},[1050,8110,1418],{"class":1088},[1050,8112,8113,8115,8118,8120,8122,8124],{"class":1052,"line":2300},[1050,8114,6830],{"class":1292},[1050,8116,8117],{"class":1296},"index",[1050,8119,1293],{"class":1292},[1050,8121,1302],{"class":1088},[1050,8123,6781],{"class":1264},[1050,8125,1441],{"class":1088},[1050,8127,8128,8130,8132,8134,8136,8138,8140,8142],{"class":1052,"line":2341},[1050,8129,6830],{"class":1292},[1050,8131,1886],{"class":1296},[1050,8133,1293],{"class":1292},[1050,8135,1302],{"class":1088},[1050,8137,3959],{"class":1673},[1050,8139,1229],{"class":1088},[1050,8141,2312],{"class":1264},[1050,8143,8144],{"class":1088},"),\n",[1050,8146,8147,8149,8151,8153,8155,8157,8159,8161],{"class":1052,"line":2346},[1050,8148,6830],{"class":1292},[1050,8150,2119],{"class":1296},[1050,8152,1293],{"class":1292},[1050,8154,1302],{"class":1088},[1050,8156,7819],{"class":1264},[1050,8158,4856],{"class":1088},[1050,8160,6843],{"class":1264},[1050,8162,3032],{"class":1088},[1050,8164,8165],{"class":1052,"line":2361},[1050,8166,6868],{"class":1088},[1050,8168,8169,8171],{"class":1052,"line":2396},[1050,8170,5626],{"class":1063},[1050,8172,1567],{"class":1088},[1050,8174,8175,8178,8180,8182],{"class":1052,"line":2401},[1050,8176,8177],{"class":1067},"                successful_posts",[1050,8179,1089],{"class":1088},[1050,8181,1415],{"class":1264},[1050,8183,1418],{"class":1088},[1050,8185,8186,8188,8190,8192,8194,8196,8198,8200],{"class":1052,"line":2416},[1050,8187,6830],{"class":1292},[1050,8189,1427],{"class":1296},[1050,8191,1293],{"class":1292},[1050,8193,1302],{"class":1088},[1050,8195,2319],{"class":1264},[1050,8197,1089],{"class":1088},[1050,8199,1427],{"class":1384},[1050,8201,1441],{"class":1088},[1050,8203,8204,8206,8208,8210,8212,8214,8216,8218],{"class":1052,"line":2426},[1050,8205,6830],{"class":1292},[1050,8207,1449],{"class":1296},[1050,8209,1293],{"class":1292},[1050,8211,1302],{"class":1088},[1050,8213,2319],{"class":1264},[1050,8215,1089],{"class":1088},[1050,8217,1449],{"class":1384},[1050,8219,1441],{"class":1088},[1050,8221,8222,8224,8226,8228,8230,8232,8234],{"class":1052,"line":2432},[1050,8223,6830],{"class":1292},[1050,8225,3106],{"class":1296},[1050,8227,1293],{"class":1292},[1050,8229,1302],{"class":1088},[1050,8231,2319],{"class":1264},[1050,8233,1089],{"class":1088},[1050,8235,4706],{"class":1384},[1050,8237,8238],{"class":1052,"line":2450},[1050,8239,6868],{"class":1088},[1050,8241,8242],{"class":1052,"line":3797},[1050,8243,1620],{"class":1067},[1050,8245,8246,8248,8250],{"class":1052,"line":3816},[1050,8247,1742],{"class":1063},[1050,8249,1286],{"class":1264},[1050,8251,1418],{"class":1088},[1050,8253,8254,8256,8259,8261,8263,8266],{"class":1052,"line":3821},[1050,8255,1424],{"class":1292},[1050,8257,8258],{"class":1296},"successful_posts",[1050,8260,1293],{"class":1292},[1050,8262,1302],{"class":1088},[1050,8264,8265],{"class":1264}," successful_posts",[1050,8267,1441],{"class":1088},[1050,8269,8270,8272,8275,8277,8279,8282],{"class":1052,"line":3827},[1050,8271,1424],{"class":1292},[1050,8273,8274],{"class":1296},"failed_posts",[1050,8276,1293],{"class":1292},[1050,8278,1302],{"class":1088},[1050,8280,8281],{"class":1264}," failed_posts",[1050,8283,1441],{"class":1088},[1050,8285,8286,8288,8291,8293,8295,8297,8299,8301],{"class":1052,"line":3849},[1050,8287,1424],{"class":1292},[1050,8289,8290],{"class":1296},"total_created",[1050,8292,1293],{"class":1292},[1050,8294,1302],{"class":1088},[1050,8296,1841],{"class":1840},[1050,8298,1229],{"class":1088},[1050,8300,8258],{"class":1264},[1050,8302,1614],{"class":1088},[1050,8304,8305],{"class":1052,"line":3854},[1050,8306,1493],{"class":1088},[1050,8308,8309],{"class":1052,"line":3876},[1050,8310,1499],{"class":1067},[1050,8312,8313,8315,8317,8319,8321],{"class":1052,"line":3881},[1050,8314,1863],{"class":1063},[1050,8316,2249],{"class":1067},[1050,8318,1089],{"class":1088},[1050,8320,2356],{"class":1384},[1050,8322,1567],{"class":1088},[1050,8324,8325,8327,8329,8331,8333,8335,8337,8339,8341,8343,8345,8347,8349,8351,8353],{"class":1052,"line":3894},[1050,8326,1742],{"class":1063},[1050,8328,1286],{"class":1264},[1050,8330,1289],{"class":1088},[1050,8332,1293],{"class":1292},[1050,8334,1886],{"class":1296},[1050,8336,1293],{"class":1292},[1050,8338,1302],{"class":1088},[1050,8340,1305],{"class":1292},[1050,8342,2380],{"class":1296},[1050,8344,1293],{"class":1292},[1050,8346,1900],{"class":1088},[1050,8348,1903],{"class":1395},[1050,8350,1359],{"class":1088},[1050,8352,2391],{"class":1270},[1050,8354,1614],{"class":1088},[1050,8356,8357,8359,8361,8363,8365],{"class":1052,"line":3927},[1050,8358,1863],{"class":1063},[1050,8360,3932],{"class":1673},[1050,8362,2029],{"class":1063},[1050,8364,3937],{"class":1067},[1050,8366,1567],{"class":1088},[1050,8368,8369,8371,8373,8375,8377,8379,8381,8383,8385,8387,8389,8391,8393,8395,8397],{"class":1052,"line":3942},[1050,8370,1742],{"class":1063},[1050,8372,1286],{"class":1264},[1050,8374,1289],{"class":1088},[1050,8376,1293],{"class":1292},[1050,8378,1886],{"class":1296},[1050,8380,1293],{"class":1292},[1050,8382,1302],{"class":1088},[1050,8384,3959],{"class":1673},[1050,8386,1229],{"class":1088},[1050,8388,3964],{"class":1264},[1050,8390,3967],{"class":1088},[1050,8392,1903],{"class":1395},[1050,8394,1359],{"class":1088},[1050,8396,3974],{"class":1270},[1050,8398,1614],{"class":1088},[1030,8400,8402],{"id":8401},"external-service-integration","External Service Integration",[1035,8404,8406],{"id":8405},"http-client-integration","HTTP Client Integration",[1040,8408,8410],{"className":1042,"code":8409,"language":1044,"meta":1045,"style":1045},"# services/external_api.py\nimport aiohttp\nimport asyncio\nfrom typing import Optional, Dict, Any\nfrom django.conf import settings\n\nclass AsyncAPIClient:\n    \"\"\"Async client for external API integration.\"\"\"\n    \n    def __init__(self, base_url: str, timeout: int = 30):\n        self.base_url = base_url.rstrip('/')\n        self.timeout = aiohttp.ClientTimeout(total=timeout)\n        self.session = None\n    \n    async def __aenter__(self):\n        \"\"\"Async context manager entry.\"\"\"\n        self.session = aiohttp.ClientSession(\n            timeout=self.timeout,\n            headers={'User-Agent': 'Django-AsyncClient/1.0'}\n        )\n        return self\n    \n    async def __aexit__(self, exc_type, exc_val, exc_tb):\n        \"\"\"Async context manager exit.\"\"\"\n        if self.session:\n            await self.session.close()\n    \n    async def get(self, endpoint: str, params: Optional[Dict] = None) -> Optional[Dict[str, Any]]:\n        \"\"\"Make async GET request.\"\"\"\n        url = f\"{self.base_url}/{endpoint.lstrip('/')}\"\n        \n        try:\n            async with self.session.get(url, params=params) as response:\n                if response.status == 200:\n                    return await response.json()\n                else:\n                    print(f\"GET {url} returned {response.status}\")\n                    return None\n        except asyncio.TimeoutError:\n            print(f\"Timeout for GET {url}\")\n            return None\n        except Exception as e:\n            print(f\"Error in GET {url}: {e}\")\n            return None\n    \n    async def post(self, endpoint: str, data: Dict[str, Any]) -> Optional[Dict[str, Any]]:\n        \"\"\"Make async POST request.\"\"\"\n        url = f\"{self.base_url}/{endpoint.lstrip('/')}\"\n        \n        try:\n            async with self.session.post(url, json=data) as response:\n                if response.status in [200, 201]:\n                    return await response.json()\n                else:\n                    print(f\"POST {url} returned {response.status}\")\n                    return None\n        except asyncio.TimeoutError:\n            print(f\"Timeout for POST {url}\")\n            return None\n        except Exception as e:\n            print(f\"Error in POST {url}: {e}\")\n            return None\n    \n    async def put(self, endpoint: str, data: Dict[str, Any]) -> Optional[Dict[str, Any]]:\n        \"\"\"Make async PUT request.\"\"\"\n        url = f\"{self.base_url}/{endpoint.lstrip('/')}\"\n        \n        try:\n            async with self.session.put(url, json=data) as response:\n                if response.status == 200:\n                    return await response.json()\n                else:\n                    print(f\"PUT {url} returned {response.status}\")\n                    return None\n        except asyncio.TimeoutError:\n            print(f\"Timeout for PUT {url}\")\n            return None\n        except Exception as e:\n            print(f\"Error in PUT {url}: {e}\")\n            return None\n    \n    async def delete(self, endpoint: str) -> bool:\n        \"\"\"Make async DELETE request.\"\"\"\n        url = f\"{self.base_url}/{endpoint.lstrip('/')}\"\n        \n        try:\n            async with self.session.delete(url) as response:\n                return response.status in [200, 204]\n        except asyncio.TimeoutError:\n            print(f\"Timeout for DELETE {url}\")\n            return False\n        except Exception as e:\n            print(f\"Error in DELETE {url}: {e}\")\n            return False\n\n# Usage in views\nasync def sync_user_data(request, user_id):\n    \"\"\"Sync user data with external service.\"\"\"\n    async with AsyncAPIClient('https://api.external-service.com') as client:\n        # Fetch user data from external service\n        external_user = await client.get(f'/users/{user_id}')\n        \n        if not external_user:\n            return JsonResponse({'error': 'User not found in external service'}, status=404)\n        \n        # Update local user data\n        from asgiref.sync import sync_to_async\n        \n        @sync_to_async\n        def update_local_user():\n            try:\n                user = User.objects.get(id=user_id)\n                user.email = external_user.get('email', user.email)\n                user.first_name = external_user.get('first_name', user.first_name)\n                user.last_name = external_user.get('last_name', user.last_name)\n                user.save()\n                return user\n            except User.DoesNotExist:\n                return None\n        \n        updated_user = await update_local_user()\n        \n        if not updated_user:\n            return JsonResponse({'error': 'Local user not found'}, status=404)\n        \n        return JsonResponse({\n            'message': 'User data synchronized',\n            'user': {\n                'id': updated_user.id,\n                'username': updated_user.username,\n                'email': updated_user.email,\n                'first_name': updated_user.first_name,\n                'last_name': updated_user.last_name\n            }\n        })\n",[1047,8411,8412,8417,8423,8429,8451,8467,8471,8480,8489,8493,8529,8559,8587,8599,8603,8618,8627,8645,8660,8687,8691,8698,8702,8732,8741,8753,8770,8774,8841,8850,8897,8901,8907,8944,8960,8974,8980,9016,9022,9035,9057,9063,9075,9104,9110,9114,9171,9180,9224,9228,9234,9270,9295,9309,9315,9348,9354,9366,9387,9393,9405,9434,9440,9444,9500,9509,9553,9557,9563,9600,9616,9630,9636,9669,9675,9687,9708,9714,9726,9755,9761,9765,9794,9803,9847,9851,9857,9885,9908,9920,9941,9948,9960,9989,9995,9999,10004,10023,10032,10058,10063,10095,10099,10110,10143,10147,10152,10166,10170,10176,10185,10192,10220,10257,10292,10327,10337,10344,10357,10363,10367,10380,10384,10395,10428,10432,10440,10459,10471,10489,10507,10525,10543,10560,10564],{"__ignoreMap":1045},[1050,8413,8414],{"class":1052,"line":1053},[1050,8415,8416],{"class":1056},"# services/external_api.py\n",[1050,8418,8419,8421],{"class":1052,"line":1060},[1050,8420,1064],{"class":1063},[1050,8422,1076],{"class":1067},[1050,8424,8425,8427],{"class":1052,"line":1071},[1050,8426,1064],{"class":1063},[1050,8428,1068],{"class":1067},[1050,8430,8431,8433,8436,8438,8441,8443,8446,8448],{"class":1052,"line":1079},[1050,8432,1082],{"class":1063},[1050,8434,8435],{"class":1067}," typing ",[1050,8437,1064],{"class":1063},[1050,8439,8440],{"class":1067}," Optional",[1050,8442,1202],{"class":1088},[1050,8444,8445],{"class":1067}," Dict",[1050,8447,1202],{"class":1088},[1050,8449,8450],{"class":1067}," Any\n",[1050,8452,8453,8455,8457,8459,8462,8464],{"class":1052,"line":1100},[1050,8454,1082],{"class":1063},[1050,8456,1085],{"class":1067},[1050,8458,1089],{"class":1088},[1050,8460,8461],{"class":1067},"conf ",[1050,8463,1064],{"class":1063},[1050,8465,8466],{"class":1067}," settings\n",[1050,8468,8469],{"class":1052,"line":1117},[1050,8470,1212],{"emptyLinePlaceholder":1211},[1050,8472,8473,8475,8478],{"class":1052,"line":1143},[1050,8474,2600],{"class":1218},[1050,8476,8477],{"class":2603}," AsyncAPIClient",[1050,8479,1567],{"class":1088},[1050,8481,8482,8484,8487],{"class":1052,"line":1168},[1050,8483,1243],{"class":1242},[1050,8485,8486],{"class":1246},"Async client for external API integration.",[1050,8488,1250],{"class":1242},[1050,8490,8491],{"class":1052,"line":1186},[1050,8492,1499],{"class":1067},[1050,8494,8495,8497,8500,8502,8504,8506,8509,8511,8513,8515,8518,8520,8522,8524,8527],{"class":1052,"line":1208},[1050,8496,7103],{"class":1218},[1050,8498,8499],{"class":1840}," __init__",[1050,8501,1229],{"class":1088},[1050,8503,2640],{"class":2639},[1050,8505,1202],{"class":1088},[1050,8507,8508],{"class":1232}," base_url",[1050,8510,1302],{"class":1088},[1050,8512,3959],{"class":1673},[1050,8514,1202],{"class":1088},[1050,8516,8517],{"class":1232}," timeout",[1050,8519,1302],{"class":1088},[1050,8521,2868],{"class":1673},[1050,8523,5127],{"class":1088},[1050,8525,8526],{"class":1270}," 30",[1050,8528,1236],{"class":1088},[1050,8530,8531,8534,8536,8539,8541,8543,8545,8548,8550,8552,8555,8557],{"class":1052,"line":1215},[1050,8532,8533],{"class":2687},"        self",[1050,8535,1089],{"class":1088},[1050,8537,8538],{"class":1384},"base_url",[1050,8540,5127],{"class":1088},[1050,8542,8508],{"class":1067},[1050,8544,1089],{"class":1088},[1050,8546,8547],{"class":1264},"rstrip",[1050,8549,1229],{"class":1088},[1050,8551,1293],{"class":1292},[1050,8553,8554],{"class":1296},"/",[1050,8556,1293],{"class":1292},[1050,8558,1614],{"class":1088},[1050,8560,8561,8563,8565,8568,8570,8572,8574,8577,8579,8581,8583,8585],{"class":1052,"line":1239},[1050,8562,8533],{"class":2687},[1050,8564,1089],{"class":1088},[1050,8566,8567],{"class":1384},"timeout",[1050,8569,5127],{"class":1088},[1050,8571,2018],{"class":1067},[1050,8573,1089],{"class":1088},[1050,8575,8576],{"class":1264},"ClientTimeout",[1050,8578,1229],{"class":1088},[1050,8580,3265],{"class":1395},[1050,8582,1359],{"class":1088},[1050,8584,8567],{"class":1264},[1050,8586,1614],{"class":1088},[1050,8588,8589,8591,8593,8595,8597],{"class":1052,"line":1253},[1050,8590,8533],{"class":2687},[1050,8592,1089],{"class":1088},[1050,8594,5517],{"class":1384},[1050,8596,5127],{"class":1088},[1050,8598,5635],{"class":1401},[1050,8600,8601],{"class":1052,"line":1280},[1050,8602,1499],{"class":1067},[1050,8604,8605,8607,8609,8612,8614,8616],{"class":1052,"line":1316},[1050,8606,1368],{"class":1218},[1050,8608,1222],{"class":1218},[1050,8610,8611],{"class":1840}," __aenter__",[1050,8613,1229],{"class":1088},[1050,8615,2640],{"class":2639},[1050,8617,1236],{"class":1088},[1050,8619,8620,8622,8625],{"class":1052,"line":1321},[1050,8621,2667],{"class":1242},[1050,8623,8624],{"class":1246},"Async context manager entry.",[1050,8626,1250],{"class":1242},[1050,8628,8629,8631,8633,8635,8637,8639,8641,8643],{"class":1052,"line":1337},[1050,8630,8533],{"class":2687},[1050,8632,1089],{"class":1088},[1050,8634,5517],{"class":1384},[1050,8636,5127],{"class":1088},[1050,8638,2018],{"class":1067},[1050,8640,1089],{"class":1088},[1050,8642,2023],{"class":1264},[1050,8644,4843],{"class":1088},[1050,8646,8647,8650,8652,8654,8656,8658],{"class":1052,"line":1347},[1050,8648,8649],{"class":1395},"            timeout",[1050,8651,1359],{"class":1088},[1050,8653,2640],{"class":2687},[1050,8655,1089],{"class":1088},[1050,8657,8567],{"class":1384},[1050,8659,1441],{"class":1088},[1050,8661,8662,8665,8668,8670,8673,8675,8677,8679,8682,8684],{"class":1052,"line":1353},[1050,8663,8664],{"class":1395},"            headers",[1050,8666,8667],{"class":1088},"={",[1050,8669,1293],{"class":1292},[1050,8671,8672],{"class":1296},"User-Agent",[1050,8674,1293],{"class":1292},[1050,8676,1302],{"class":1088},[1050,8678,1305],{"class":1292},[1050,8680,8681],{"class":1296},"Django-AsyncClient/1.0",[1050,8683,1293],{"class":1292},[1050,8685,8686],{"class":1088},"}\n",[1050,8688,8689],{"class":1052,"line":1365},[1050,8690,6219],{"class":1088},[1050,8692,8693,8695],{"class":1052,"line":1407},[1050,8694,1742],{"class":1063},[1050,8696,8697],{"class":2687}," self\n",[1050,8699,8700],{"class":1052,"line":1421},[1050,8701,1499],{"class":1067},[1050,8703,8704,8706,8708,8711,8713,8715,8717,8720,8722,8725,8727,8730],{"class":1052,"line":1444},[1050,8705,1368],{"class":1218},[1050,8707,1222],{"class":1218},[1050,8709,8710],{"class":1840}," __aexit__",[1050,8712,1229],{"class":1088},[1050,8714,2640],{"class":2639},[1050,8716,1202],{"class":1088},[1050,8718,8719],{"class":1232}," exc_type",[1050,8721,1202],{"class":1088},[1050,8723,8724],{"class":1232}," exc_val",[1050,8726,1202],{"class":1088},[1050,8728,8729],{"class":1232}," exc_tb",[1050,8731,1236],{"class":1088},[1050,8733,8734,8736,8739],{"class":1052,"line":1464},[1050,8735,2667],{"class":1242},[1050,8737,8738],{"class":1246},"Async context manager exit.",[1050,8740,1250],{"class":1242},[1050,8742,8743,8745,8747,8749,8751],{"class":1052,"line":1490},[1050,8744,2722],{"class":1063},[1050,8746,2706],{"class":2687},[1050,8748,1089],{"class":1088},[1050,8750,5517],{"class":1384},[1050,8752,1567],{"class":1088},[1050,8754,8755,8757,8759,8761,8763,8765,8768],{"class":1052,"line":1496},[1050,8756,4280],{"class":1063},[1050,8758,2706],{"class":2687},[1050,8760,1089],{"class":1088},[1050,8762,5517],{"class":1384},[1050,8764,1089],{"class":1088},[1050,8766,8767],{"class":1264},"close",[1050,8769,1487],{"class":1088},[1050,8771,8772],{"class":1052,"line":1502},[1050,8773,1499],{"class":1067},[1050,8775,8776,8778,8780,8782,8784,8786,8788,8791,8793,8795,8797,8800,8802,8804,8806,8809,8812,8814,8817,8819,8822,8824,8826,8828,8830,8833,8835,8838],{"class":1052,"line":1525},[1050,8777,1368],{"class":1218},[1050,8779,1222],{"class":1218},[1050,8781,2839],{"class":1225},[1050,8783,1229],{"class":1088},[1050,8785,2640],{"class":2639},[1050,8787,1202],{"class":1088},[1050,8789,8790],{"class":1232}," endpoint",[1050,8792,1302],{"class":1088},[1050,8794,3959],{"class":1673},[1050,8796,1202],{"class":1088},[1050,8798,8799],{"class":1232}," params",[1050,8801,1302],{"class":1088},[1050,8803,8440],{"class":1067},[1050,8805,4856],{"class":1088},[1050,8807,8808],{"class":1067},"Dict",[1050,8810,8811],{"class":1088},"]",[1050,8813,5127],{"class":1088},[1050,8815,8816],{"class":1401}," None",[1050,8818,1274],{"class":1088},[1050,8820,8821],{"class":1088}," ->",[1050,8823,8440],{"class":1067},[1050,8825,4856],{"class":1088},[1050,8827,8808],{"class":1067},[1050,8829,4856],{"class":1088},[1050,8831,8832],{"class":1673},"str",[1050,8834,1202],{"class":1088},[1050,8836,8837],{"class":1067}," Any",[1050,8839,8840],{"class":1088},"]]:\n",[1050,8842,8843,8845,8848],{"class":1052,"line":1530},[1050,8844,2667],{"class":1242},[1050,8846,8847],{"class":1246},"Make async GET request.",[1050,8849,1250],{"class":1242},[1050,8851,8852,8855,8857,8859,8861,8863,8865,8867,8869,8871,8873,8875,8878,8880,8883,8885,8887,8889,8891,8893,8895],{"class":1052,"line":1551},[1050,8853,8854],{"class":1067},"        url ",[1050,8856,1359],{"class":1088},[1050,8858,2455],{"class":1218},[1050,8860,1930],{"class":1296},[1050,8862,2462],{"class":2461},[1050,8864,2640],{"class":2687},[1050,8866,1089],{"class":1088},[1050,8868,8538],{"class":1384},[1050,8870,2490],{"class":2461},[1050,8872,8554],{"class":1296},[1050,8874,2462],{"class":2461},[1050,8876,8877],{"class":1067},"endpoint",[1050,8879,1089],{"class":1088},[1050,8881,8882],{"class":1264},"lstrip",[1050,8884,1229],{"class":1088},[1050,8886,1293],{"class":1292},[1050,8888,8554],{"class":1296},[1050,8890,1293],{"class":1292},[1050,8892,1274],{"class":1088},[1050,8894,2490],{"class":2461},[1050,8896,2493],{"class":1296},[1050,8898,8899],{"class":1052,"line":1561},[1050,8900,1620],{"class":1067},[1050,8902,8903,8905],{"class":1052,"line":1570},[1050,8904,2217],{"class":1063},[1050,8906,1567],{"class":1088},[1050,8908,8909,8911,8913,8915,8917,8919,8921,8923,8925,8927,8929,8931,8933,8936,8938,8940,8942],{"class":1052,"line":1576},[1050,8910,2040],{"class":1063},[1050,8912,2015],{"class":1063},[1050,8914,2706],{"class":2687},[1050,8916,1089],{"class":1088},[1050,8918,5517],{"class":1384},[1050,8920,1089],{"class":1088},[1050,8922,2049],{"class":1264},[1050,8924,1229],{"class":1088},[1050,8926,5581],{"class":1264},[1050,8928,1202],{"class":1088},[1050,8930,8799],{"class":1395},[1050,8932,1359],{"class":1088},[1050,8934,8935],{"class":1264},"params",[1050,8937,1274],{"class":1088},[1050,8939,2029],{"class":1063},[1050,8941,2065],{"class":1067},[1050,8943,1567],{"class":1088},[1050,8945,8946,8948,8950,8952,8954,8956,8958],{"class":1052,"line":1617},[1050,8947,2073],{"class":1063},[1050,8949,2065],{"class":1067},[1050,8951,1089],{"class":1088},[1050,8953,2080],{"class":1384},[1050,8955,1992],{"class":1991},[1050,8957,2085],{"class":1270},[1050,8959,1567],{"class":1088},[1050,8961,8962,8964,8966,8968,8970,8972],{"class":1052,"line":1623},[1050,8963,2112],{"class":1063},[1050,8965,1584],{"class":1063},[1050,8967,2065],{"class":1067},[1050,8969,1089],{"class":1088},[1050,8971,2104],{"class":1264},[1050,8973,1487],{"class":1088},[1050,8975,8976,8978],{"class":1052,"line":1629},[1050,8977,2127],{"class":1063},[1050,8979,1567],{"class":1088},[1050,8981,8982,8985,8987,8989,8992,8994,8996,8998,9001,9003,9006,9008,9010,9012,9014],{"class":1052,"line":1657},[1050,8983,8984],{"class":1840},"                    print",[1050,8986,1229],{"class":1088},[1050,8988,5657],{"class":1218},[1050,8990,8991],{"class":1296},"\"GET ",[1050,8993,2462],{"class":2461},[1050,8995,5581],{"class":1264},[1050,8997,2490],{"class":2461},[1050,8999,9000],{"class":1296}," returned ",[1050,9002,2462],{"class":2461},[1050,9004,9005],{"class":1264},"response",[1050,9007,1089],{"class":1088},[1050,9009,2080],{"class":1384},[1050,9011,2490],{"class":2461},[1050,9013,1930],{"class":1296},[1050,9015,1614],{"class":1088},[1050,9017,9018,9020],{"class":1052,"line":1695},[1050,9019,2112],{"class":1063},[1050,9021,5635],{"class":1401},[1050,9023,9024,9026,9028,9030,9033],{"class":1052,"line":1700},[1050,9025,2349],{"class":1063},[1050,9027,1259],{"class":1067},[1050,9029,1089],{"class":1088},[1050,9031,9032],{"class":1384},"TimeoutError",[1050,9034,1567],{"class":1088},[1050,9036,9037,9040,9042,9044,9047,9049,9051,9053,9055],{"class":1052,"line":1734},[1050,9038,9039],{"class":1840},"            print",[1050,9041,1229],{"class":1088},[1050,9043,5657],{"class":1218},[1050,9045,9046],{"class":1296},"\"Timeout for GET ",[1050,9048,2462],{"class":2461},[1050,9050,5581],{"class":1264},[1050,9052,2490],{"class":2461},[1050,9054,1930],{"class":1296},[1050,9056,1614],{"class":1088},[1050,9058,9059,9061],{"class":1052,"line":1739},[1050,9060,2303],{"class":1063},[1050,9062,5635],{"class":1401},[1050,9064,9065,9067,9069,9071,9073],{"class":1052,"line":1749},[1050,9066,2349],{"class":1063},[1050,9068,3932],{"class":1673},[1050,9070,2029],{"class":1063},[1050,9072,3937],{"class":1067},[1050,9074,1567],{"class":1088},[1050,9076,9077,9079,9081,9083,9086,9088,9090,9092,9094,9096,9098,9100,9102],{"class":1052,"line":1768},[1050,9078,9039],{"class":1840},[1050,9080,1229],{"class":1088},[1050,9082,5657],{"class":1218},[1050,9084,9085],{"class":1296},"\"Error in GET ",[1050,9087,2462],{"class":2461},[1050,9089,5581],{"class":1264},[1050,9091,2490],{"class":2461},[1050,9093,5669],{"class":1296},[1050,9095,2462],{"class":2461},[1050,9097,3964],{"class":1264},[1050,9099,2490],{"class":2461},[1050,9101,1930],{"class":1296},[1050,9103,1614],{"class":1088},[1050,9105,9106,9108],{"class":1052,"line":1787},[1050,9107,2303],{"class":1063},[1050,9109,5635],{"class":1401},[1050,9111,9112],{"class":1052,"line":1807},[1050,9113,1499],{"class":1067},[1050,9115,9116,9118,9120,9122,9124,9126,9128,9130,9132,9134,9136,9138,9140,9142,9144,9146,9148,9150,9153,9155,9157,9159,9161,9163,9165,9167,9169],{"class":1052,"line":1828},[1050,9117,1368],{"class":1218},[1050,9119,1222],{"class":1218},[1050,9121,1434],{"class":1225},[1050,9123,1229],{"class":1088},[1050,9125,2640],{"class":2639},[1050,9127,1202],{"class":1088},[1050,9129,8790],{"class":1232},[1050,9131,1302],{"class":1088},[1050,9133,3959],{"class":1673},[1050,9135,1202],{"class":1088},[1050,9137,4412],{"class":1232},[1050,9139,1302],{"class":1088},[1050,9141,8445],{"class":1067},[1050,9143,4856],{"class":1088},[1050,9145,8832],{"class":1673},[1050,9147,1202],{"class":1088},[1050,9149,8837],{"class":1067},[1050,9151,9152],{"class":1088},"])",[1050,9154,8821],{"class":1088},[1050,9156,8440],{"class":1067},[1050,9158,4856],{"class":1088},[1050,9160,8808],{"class":1067},[1050,9162,4856],{"class":1088},[1050,9164,8832],{"class":1673},[1050,9166,1202],{"class":1088},[1050,9168,8837],{"class":1067},[1050,9170,8840],{"class":1088},[1050,9172,9173,9175,9178],{"class":1052,"line":1850},[1050,9174,2667],{"class":1242},[1050,9176,9177],{"class":1246},"Make async POST request.",[1050,9179,1250],{"class":1242},[1050,9181,9182,9184,9186,9188,9190,9192,9194,9196,9198,9200,9202,9204,9206,9208,9210,9212,9214,9216,9218,9220,9222],{"class":1052,"line":1855},[1050,9183,8854],{"class":1067},[1050,9185,1359],{"class":1088},[1050,9187,2455],{"class":1218},[1050,9189,1930],{"class":1296},[1050,9191,2462],{"class":2461},[1050,9193,2640],{"class":2687},[1050,9195,1089],{"class":1088},[1050,9197,8538],{"class":1384},[1050,9199,2490],{"class":2461},[1050,9201,8554],{"class":1296},[1050,9203,2462],{"class":2461},[1050,9205,8877],{"class":1067},[1050,9207,1089],{"class":1088},[1050,9209,8882],{"class":1264},[1050,9211,1229],{"class":1088},[1050,9213,1293],{"class":1292},[1050,9215,8554],{"class":1296},[1050,9217,1293],{"class":1292},[1050,9219,1274],{"class":1088},[1050,9221,2490],{"class":2461},[1050,9223,2493],{"class":1296},[1050,9225,9226],{"class":1052,"line":1860},[1050,9227,1620],{"class":1067},[1050,9229,9230,9232],{"class":1052,"line":1875},[1050,9231,2217],{"class":1063},[1050,9233,1567],{"class":1088},[1050,9235,9236,9238,9240,9242,9244,9246,9248,9250,9252,9254,9256,9258,9260,9262,9264,9266,9268],{"class":1052,"line":1913},[1050,9237,2040],{"class":1063},[1050,9239,2015],{"class":1063},[1050,9241,2706],{"class":2687},[1050,9243,1089],{"class":1088},[1050,9245,5517],{"class":1384},[1050,9247,1089],{"class":1088},[1050,9249,1679],{"class":1264},[1050,9251,1229],{"class":1088},[1050,9253,5581],{"class":1264},[1050,9255,1202],{"class":1088},[1050,9257,2249],{"class":1395},[1050,9259,1359],{"class":1088},[1050,9261,2119],{"class":1264},[1050,9263,1274],{"class":1088},[1050,9265,2029],{"class":1063},[1050,9267,2065],{"class":1067},[1050,9269,1567],{"class":1088},[1050,9271,9272,9274,9276,9278,9280,9283,9285,9288,9290,9293],{"class":1052,"line":1918},[1050,9273,2073],{"class":1063},[1050,9275,2065],{"class":1067},[1050,9277,1089],{"class":1088},[1050,9279,2080],{"class":1384},[1050,9281,9282],{"class":1991}," in",[1050,9284,6569],{"class":1088},[1050,9286,9287],{"class":1270},"200",[1050,9289,1202],{"class":1088},[1050,9291,9292],{"class":1270}," 201",[1050,9294,6575],{"class":1088},[1050,9296,9297,9299,9301,9303,9305,9307],{"class":1052,"line":1951},[1050,9298,2112],{"class":1063},[1050,9300,1584],{"class":1063},[1050,9302,2065],{"class":1067},[1050,9304,1089],{"class":1088},[1050,9306,2104],{"class":1264},[1050,9308,1487],{"class":1088},[1050,9310,9311,9313],{"class":1052,"line":1967},[1050,9312,2127],{"class":1063},[1050,9314,1567],{"class":1088},[1050,9316,9317,9319,9321,9323,9326,9328,9330,9332,9334,9336,9338,9340,9342,9344,9346],{"class":1052,"line":1977},[1050,9318,8984],{"class":1840},[1050,9320,1229],{"class":1088},[1050,9322,5657],{"class":1218},[1050,9324,9325],{"class":1296},"\"POST ",[1050,9327,2462],{"class":2461},[1050,9329,5581],{"class":1264},[1050,9331,2490],{"class":2461},[1050,9333,9000],{"class":1296},[1050,9335,2462],{"class":2461},[1050,9337,9005],{"class":1264},[1050,9339,1089],{"class":1088},[1050,9341,2080],{"class":1384},[1050,9343,2490],{"class":2461},[1050,9345,1930],{"class":1296},[1050,9347,1614],{"class":1088},[1050,9349,9350,9352],{"class":1052,"line":2003},[1050,9351,2112],{"class":1063},[1050,9353,5635],{"class":1401},[1050,9355,9356,9358,9360,9362,9364],{"class":1052,"line":2009},[1050,9357,2349],{"class":1063},[1050,9359,1259],{"class":1067},[1050,9361,1089],{"class":1088},[1050,9363,9032],{"class":1384},[1050,9365,1567],{"class":1088},[1050,9367,9368,9370,9372,9374,9377,9379,9381,9383,9385],{"class":1052,"line":2037},[1050,9369,9039],{"class":1840},[1050,9371,1229],{"class":1088},[1050,9373,5657],{"class":1218},[1050,9375,9376],{"class":1296},"\"Timeout for POST ",[1050,9378,2462],{"class":2461},[1050,9380,5581],{"class":1264},[1050,9382,2490],{"class":2461},[1050,9384,1930],{"class":1296},[1050,9386,1614],{"class":1088},[1050,9388,9389,9391],{"class":1052,"line":2070},[1050,9390,2303],{"class":1063},[1050,9392,5635],{"class":1401},[1050,9394,9395,9397,9399,9401,9403],{"class":1052,"line":2090},[1050,9396,2349],{"class":1063},[1050,9398,3932],{"class":1673},[1050,9400,2029],{"class":1063},[1050,9402,3937],{"class":1067},[1050,9404,1567],{"class":1088},[1050,9406,9407,9409,9411,9413,9416,9418,9420,9422,9424,9426,9428,9430,9432],{"class":1052,"line":2109},[1050,9408,9039],{"class":1840},[1050,9410,1229],{"class":1088},[1050,9412,5657],{"class":1218},[1050,9414,9415],{"class":1296},"\"Error in POST ",[1050,9417,2462],{"class":2461},[1050,9419,5581],{"class":1264},[1050,9421,2490],{"class":2461},[1050,9423,5669],{"class":1296},[1050,9425,2462],{"class":2461},[1050,9427,3964],{"class":1264},[1050,9429,2490],{"class":2461},[1050,9431,1930],{"class":1296},[1050,9433,1614],{"class":1088},[1050,9435,9436,9438],{"class":1052,"line":2124},[1050,9437,2303],{"class":1063},[1050,9439,5635],{"class":1401},[1050,9441,9442],{"class":1052,"line":2132},[1050,9443,1499],{"class":1067},[1050,9445,9446,9448,9450,9452,9454,9456,9458,9460,9462,9464,9466,9468,9470,9472,9474,9476,9478,9480,9482,9484,9486,9488,9490,9492,9494,9496,9498],{"class":1052,"line":2167},[1050,9447,1368],{"class":1218},[1050,9449,1222],{"class":1218},[1050,9451,3523],{"class":1225},[1050,9453,1229],{"class":1088},[1050,9455,2640],{"class":2639},[1050,9457,1202],{"class":1088},[1050,9459,8790],{"class":1232},[1050,9461,1302],{"class":1088},[1050,9463,3959],{"class":1673},[1050,9465,1202],{"class":1088},[1050,9467,4412],{"class":1232},[1050,9469,1302],{"class":1088},[1050,9471,8445],{"class":1067},[1050,9473,4856],{"class":1088},[1050,9475,8832],{"class":1673},[1050,9477,1202],{"class":1088},[1050,9479,8837],{"class":1067},[1050,9481,9152],{"class":1088},[1050,9483,8821],{"class":1088},[1050,9485,8440],{"class":1067},[1050,9487,4856],{"class":1088},[1050,9489,8808],{"class":1067},[1050,9491,4856],{"class":1088},[1050,9493,8832],{"class":1673},[1050,9495,1202],{"class":1088},[1050,9497,8837],{"class":1067},[1050,9499,8840],{"class":1088},[1050,9501,9502,9504,9507],{"class":1052,"line":2172},[1050,9503,2667],{"class":1242},[1050,9505,9506],{"class":1246},"Make async PUT request.",[1050,9508,1250],{"class":1242},[1050,9510,9511,9513,9515,9517,9519,9521,9523,9525,9527,9529,9531,9533,9535,9537,9539,9541,9543,9545,9547,9549,9551],{"class":1052,"line":2194},[1050,9512,8854],{"class":1067},[1050,9514,1359],{"class":1088},[1050,9516,2455],{"class":1218},[1050,9518,1930],{"class":1296},[1050,9520,2462],{"class":2461},[1050,9522,2640],{"class":2687},[1050,9524,1089],{"class":1088},[1050,9526,8538],{"class":1384},[1050,9528,2490],{"class":2461},[1050,9530,8554],{"class":1296},[1050,9532,2462],{"class":2461},[1050,9534,8877],{"class":1067},[1050,9536,1089],{"class":1088},[1050,9538,8882],{"class":1264},[1050,9540,1229],{"class":1088},[1050,9542,1293],{"class":1292},[1050,9544,8554],{"class":1296},[1050,9546,1293],{"class":1292},[1050,9548,1274],{"class":1088},[1050,9550,2490],{"class":2461},[1050,9552,2493],{"class":1296},[1050,9554,9555],{"class":1052,"line":2200},[1050,9556,1620],{"class":1067},[1050,9558,9559,9561],{"class":1052,"line":2209},[1050,9560,2217],{"class":1063},[1050,9562,1567],{"class":1088},[1050,9564,9565,9567,9569,9571,9573,9575,9577,9580,9582,9584,9586,9588,9590,9592,9594,9596,9598],{"class":1052,"line":2214},[1050,9566,2040],{"class":1063},[1050,9568,2015],{"class":1063},[1050,9570,2706],{"class":2687},[1050,9572,1089],{"class":1088},[1050,9574,5517],{"class":1384},[1050,9576,1089],{"class":1088},[1050,9578,9579],{"class":1264},"put",[1050,9581,1229],{"class":1088},[1050,9583,5581],{"class":1264},[1050,9585,1202],{"class":1088},[1050,9587,2249],{"class":1395},[1050,9589,1359],{"class":1088},[1050,9591,2119],{"class":1264},[1050,9593,1274],{"class":1088},[1050,9595,2029],{"class":1063},[1050,9597,2065],{"class":1067},[1050,9599,1567],{"class":1088},[1050,9601,9602,9604,9606,9608,9610,9612,9614],{"class":1052,"line":2222},[1050,9603,2073],{"class":1063},[1050,9605,2065],{"class":1067},[1050,9607,1089],{"class":1088},[1050,9609,2080],{"class":1384},[1050,9611,1992],{"class":1991},[1050,9613,2085],{"class":1270},[1050,9615,1567],{"class":1088},[1050,9617,9618,9620,9622,9624,9626,9628],{"class":1052,"line":2241},[1050,9619,2112],{"class":1063},[1050,9621,1584],{"class":1063},[1050,9623,2065],{"class":1067},[1050,9625,1089],{"class":1088},[1050,9627,2104],{"class":1264},[1050,9629,1487],{"class":1088},[1050,9631,9632,9634],{"class":1052,"line":2264},[1050,9633,2127],{"class":1063},[1050,9635,1567],{"class":1088},[1050,9637,9638,9640,9642,9644,9647,9649,9651,9653,9655,9657,9659,9661,9663,9665,9667],{"class":1052,"line":2270},[1050,9639,8984],{"class":1840},[1050,9641,1229],{"class":1088},[1050,9643,5657],{"class":1218},[1050,9645,9646],{"class":1296},"\"PUT ",[1050,9648,2462],{"class":2461},[1050,9650,5581],{"class":1264},[1050,9652,2490],{"class":2461},[1050,9654,9000],{"class":1296},[1050,9656,2462],{"class":2461},[1050,9658,9005],{"class":1264},[1050,9660,1089],{"class":1088},[1050,9662,2080],{"class":1384},[1050,9664,2490],{"class":2461},[1050,9666,1930],{"class":1296},[1050,9668,1614],{"class":1088},[1050,9670,9671,9673],{"class":1052,"line":2276},[1050,9672,2112],{"class":1063},[1050,9674,5635],{"class":1401},[1050,9676,9677,9679,9681,9683,9685],{"class":1052,"line":2295},[1050,9678,2349],{"class":1063},[1050,9680,1259],{"class":1067},[1050,9682,1089],{"class":1088},[1050,9684,9032],{"class":1384},[1050,9686,1567],{"class":1088},[1050,9688,9689,9691,9693,9695,9698,9700,9702,9704,9706],{"class":1052,"line":2300},[1050,9690,9039],{"class":1840},[1050,9692,1229],{"class":1088},[1050,9694,5657],{"class":1218},[1050,9696,9697],{"class":1296},"\"Timeout for PUT ",[1050,9699,2462],{"class":2461},[1050,9701,5581],{"class":1264},[1050,9703,2490],{"class":2461},[1050,9705,1930],{"class":1296},[1050,9707,1614],{"class":1088},[1050,9709,9710,9712],{"class":1052,"line":2341},[1050,9711,2303],{"class":1063},[1050,9713,5635],{"class":1401},[1050,9715,9716,9718,9720,9722,9724],{"class":1052,"line":2346},[1050,9717,2349],{"class":1063},[1050,9719,3932],{"class":1673},[1050,9721,2029],{"class":1063},[1050,9723,3937],{"class":1067},[1050,9725,1567],{"class":1088},[1050,9727,9728,9730,9732,9734,9737,9739,9741,9743,9745,9747,9749,9751,9753],{"class":1052,"line":2361},[1050,9729,9039],{"class":1840},[1050,9731,1229],{"class":1088},[1050,9733,5657],{"class":1218},[1050,9735,9736],{"class":1296},"\"Error in PUT ",[1050,9738,2462],{"class":2461},[1050,9740,5581],{"class":1264},[1050,9742,2490],{"class":2461},[1050,9744,5669],{"class":1296},[1050,9746,2462],{"class":2461},[1050,9748,3964],{"class":1264},[1050,9750,2490],{"class":2461},[1050,9752,1930],{"class":1296},[1050,9754,1614],{"class":1088},[1050,9756,9757,9759],{"class":1052,"line":2396},[1050,9758,2303],{"class":1063},[1050,9760,5635],{"class":1401},[1050,9762,9763],{"class":1052,"line":2401},[1050,9764,1499],{"class":1067},[1050,9766,9767,9769,9771,9773,9775,9777,9779,9781,9783,9785,9787,9789,9792],{"class":1052,"line":2416},[1050,9768,1368],{"class":1218},[1050,9770,1222],{"class":1218},[1050,9772,3598],{"class":1225},[1050,9774,1229],{"class":1088},[1050,9776,2640],{"class":2639},[1050,9778,1202],{"class":1088},[1050,9780,8790],{"class":1232},[1050,9782,1302],{"class":1088},[1050,9784,3959],{"class":1673},[1050,9786,1274],{"class":1088},[1050,9788,8821],{"class":1088},[1050,9790,9791],{"class":1673}," bool",[1050,9793,1567],{"class":1088},[1050,9795,9796,9798,9801],{"class":1052,"line":2426},[1050,9797,2667],{"class":1242},[1050,9799,9800],{"class":1246},"Make async DELETE request.",[1050,9802,1250],{"class":1242},[1050,9804,9805,9807,9809,9811,9813,9815,9817,9819,9821,9823,9825,9827,9829,9831,9833,9835,9837,9839,9841,9843,9845],{"class":1052,"line":2432},[1050,9806,8854],{"class":1067},[1050,9808,1359],{"class":1088},[1050,9810,2455],{"class":1218},[1050,9812,1930],{"class":1296},[1050,9814,2462],{"class":2461},[1050,9816,2640],{"class":2687},[1050,9818,1089],{"class":1088},[1050,9820,8538],{"class":1384},[1050,9822,2490],{"class":2461},[1050,9824,8554],{"class":1296},[1050,9826,2462],{"class":2461},[1050,9828,8877],{"class":1067},[1050,9830,1089],{"class":1088},[1050,9832,8882],{"class":1264},[1050,9834,1229],{"class":1088},[1050,9836,1293],{"class":1292},[1050,9838,8554],{"class":1296},[1050,9840,1293],{"class":1292},[1050,9842,1274],{"class":1088},[1050,9844,2490],{"class":2461},[1050,9846,2493],{"class":1296},[1050,9848,9849],{"class":1052,"line":2450},[1050,9850,1620],{"class":1067},[1050,9852,9853,9855],{"class":1052,"line":3797},[1050,9854,2217],{"class":1063},[1050,9856,1567],{"class":1088},[1050,9858,9859,9861,9863,9865,9867,9869,9871,9873,9875,9877,9879,9881,9883],{"class":1052,"line":3816},[1050,9860,2040],{"class":1063},[1050,9862,2015],{"class":1063},[1050,9864,2706],{"class":2687},[1050,9866,1089],{"class":1088},[1050,9868,5517],{"class":1384},[1050,9870,1089],{"class":1088},[1050,9872,5439],{"class":1264},[1050,9874,1229],{"class":1088},[1050,9876,5581],{"class":1264},[1050,9878,1274],{"class":1088},[1050,9880,2029],{"class":1063},[1050,9882,2065],{"class":1067},[1050,9884,1567],{"class":1088},[1050,9886,9887,9889,9891,9893,9895,9897,9899,9901,9903,9906],{"class":1052,"line":3821},[1050,9888,5611],{"class":1063},[1050,9890,2065],{"class":1067},[1050,9892,1089],{"class":1088},[1050,9894,2080],{"class":1384},[1050,9896,9282],{"class":1991},[1050,9898,6569],{"class":1088},[1050,9900,9287],{"class":1270},[1050,9902,1202],{"class":1088},[1050,9904,9905],{"class":1270}," 204",[1050,9907,3032],{"class":1088},[1050,9909,9910,9912,9914,9916,9918],{"class":1052,"line":3827},[1050,9911,2349],{"class":1063},[1050,9913,1259],{"class":1067},[1050,9915,1089],{"class":1088},[1050,9917,9032],{"class":1384},[1050,9919,1567],{"class":1088},[1050,9921,9922,9924,9926,9928,9931,9933,9935,9937,9939],{"class":1052,"line":3849},[1050,9923,9039],{"class":1840},[1050,9925,1229],{"class":1088},[1050,9927,5657],{"class":1218},[1050,9929,9930],{"class":1296},"\"Timeout for DELETE ",[1050,9932,2462],{"class":2461},[1050,9934,5581],{"class":1264},[1050,9936,2490],{"class":2461},[1050,9938,1930],{"class":1296},[1050,9940,1614],{"class":1088},[1050,9942,9943,9945],{"class":1052,"line":3854},[1050,9944,2303],{"class":1063},[1050,9946,9947],{"class":1401}," False\n",[1050,9949,9950,9952,9954,9956,9958],{"class":1052,"line":3876},[1050,9951,2349],{"class":1063},[1050,9953,3932],{"class":1673},[1050,9955,2029],{"class":1063},[1050,9957,3937],{"class":1067},[1050,9959,1567],{"class":1088},[1050,9961,9962,9964,9966,9968,9971,9973,9975,9977,9979,9981,9983,9985,9987],{"class":1052,"line":3881},[1050,9963,9039],{"class":1840},[1050,9965,1229],{"class":1088},[1050,9967,5657],{"class":1218},[1050,9969,9970],{"class":1296},"\"Error in DELETE ",[1050,9972,2462],{"class":2461},[1050,9974,5581],{"class":1264},[1050,9976,2490],{"class":2461},[1050,9978,5669],{"class":1296},[1050,9980,2462],{"class":2461},[1050,9982,3964],{"class":1264},[1050,9984,2490],{"class":2461},[1050,9986,1930],{"class":1296},[1050,9988,1614],{"class":1088},[1050,9990,9991,9993],{"class":1052,"line":3894},[1050,9992,2303],{"class":1063},[1050,9994,9947],{"class":1401},[1050,9996,9997],{"class":1052,"line":3927},[1050,9998,1212],{"emptyLinePlaceholder":1211},[1050,10000,10001],{"class":1052,"line":3942},[1050,10002,10003],{"class":1056},"# Usage in views\n",[1050,10005,10006,10008,10010,10013,10015,10017,10019,10021],{"class":1052,"line":3979},[1050,10007,1219],{"class":1218},[1050,10009,1222],{"class":1218},[1050,10011,10012],{"class":1225}," sync_user_data",[1050,10014,1229],{"class":1088},[1050,10016,1233],{"class":1232},[1050,10018,1202],{"class":1088},[1050,10020,5522],{"class":1232},[1050,10022,1236],{"class":1088},[1050,10024,10025,10027,10030],{"class":1052,"line":3984},[1050,10026,1243],{"class":1242},[1050,10028,10029],{"class":1246},"Sync user data with external service.",[1050,10031,1250],{"class":1242},[1050,10033,10034,10036,10038,10040,10042,10044,10047,10049,10051,10053,10056],{"class":1052,"line":4016},[1050,10035,1368],{"class":1063},[1050,10037,2015],{"class":1063},[1050,10039,8477],{"class":1264},[1050,10041,1229],{"class":1088},[1050,10043,1293],{"class":1292},[1050,10045,10046],{"class":1296},"https://api.external-service.com",[1050,10048,1293],{"class":1292},[1050,10050,1274],{"class":1088},[1050,10052,2029],{"class":1063},[1050,10054,10055],{"class":1067}," client",[1050,10057,1567],{"class":1088},[1050,10059,10060],{"class":1052,"line":4026},[1050,10061,10062],{"class":1056},"        # Fetch user data from external service\n",[1050,10064,10065,10068,10070,10072,10074,10076,10078,10080,10082,10085,10087,10089,10091,10093],{"class":1052,"line":4033},[1050,10066,10067],{"class":1067},"        external_user ",[1050,10069,1359],{"class":1088},[1050,10071,1584],{"class":1063},[1050,10073,10055],{"class":1067},[1050,10075,1089],{"class":1088},[1050,10077,2049],{"class":1264},[1050,10079,1229],{"class":1088},[1050,10081,5657],{"class":1218},[1050,10083,10084],{"class":1296},"'/users/",[1050,10086,2462],{"class":2461},[1050,10088,5550],{"class":1264},[1050,10090,2490],{"class":2461},[1050,10092,1293],{"class":1296},[1050,10094,1614],{"class":1088},[1050,10096,10097],{"class":1052,"line":4050},[1050,10098,1620],{"class":1067},[1050,10100,10101,10103,10105,10108],{"class":1052,"line":4069},[1050,10102,2722],{"class":1063},[1050,10104,6555],{"class":1991},[1050,10106,10107],{"class":1067}," external_user",[1050,10109,1567],{"class":1088},[1050,10111,10112,10114,10116,10118,10120,10122,10124,10126,10128,10131,10133,10135,10137,10139,10141],{"class":1052,"line":4074},[1050,10113,2303],{"class":1063},[1050,10115,1286],{"class":1264},[1050,10117,1289],{"class":1088},[1050,10119,1293],{"class":1292},[1050,10121,1886],{"class":1296},[1050,10123,1293],{"class":1292},[1050,10125,1302],{"class":1088},[1050,10127,1305],{"class":1292},[1050,10129,10130],{"class":1296},"User not found in external service",[1050,10132,1293],{"class":1292},[1050,10134,1900],{"class":1088},[1050,10136,1903],{"class":1395},[1050,10138,1359],{"class":1088},[1050,10140,1908],{"class":1270},[1050,10142,1614],{"class":1088},[1050,10144,10145],{"class":1052,"line":4108},[1050,10146,1620],{"class":1067},[1050,10148,10149],{"class":1052,"line":4113},[1050,10150,10151],{"class":1056},"        # Update local user data\n",[1050,10153,10154,10156,10158,10160,10162,10164],{"class":1052,"line":4126},[1050,10155,4789],{"class":1063},[1050,10157,1173],{"class":1067},[1050,10159,1089],{"class":1088},[1050,10161,1178],{"class":1067},[1050,10163,1064],{"class":1063},[1050,10165,1183],{"class":1067},[1050,10167,10168],{"class":1052,"line":4131},[1050,10169,1620],{"class":1067},[1050,10171,10172,10174],{"class":1052,"line":4144},[1050,10173,4810],{"class":1088},[1050,10175,4813],{"class":1225},[1050,10177,10178,10180,10183],{"class":1052,"line":4177},[1050,10179,4819],{"class":1218},[1050,10181,10182],{"class":1225}," update_local_user",[1050,10184,4825],{"class":1088},[1050,10186,10187,10190],{"class":1052,"line":4190},[1050,10188,10189],{"class":1063},"            try",[1050,10191,1567],{"class":1088},[1050,10193,10194,10197,10199,10202,10204,10206,10208,10210,10212,10214,10216,10218],{"class":1052,"line":4223},[1050,10195,10196],{"class":1067},"                user ",[1050,10198,1359],{"class":1088},[1050,10200,10201],{"class":1067}," User",[1050,10203,1089],{"class":1088},[1050,10205,1385],{"class":1384},[1050,10207,1089],{"class":1088},[1050,10209,2049],{"class":1264},[1050,10211,1229],{"class":1088},[1050,10213,1427],{"class":1395},[1050,10215,1359],{"class":1088},[1050,10217,5550],{"class":1264},[1050,10219,1614],{"class":1088},[1050,10221,10222,10225,10227,10230,10232,10234,10236,10238,10240,10242,10244,10246,10248,10251,10253,10255],{"class":1052,"line":4228},[1050,10223,10224],{"class":1067},"                user",[1050,10226,1089],{"class":1088},[1050,10228,10229],{"class":1384},"email",[1050,10231,5127],{"class":1088},[1050,10233,10107],{"class":1067},[1050,10235,1089],{"class":1088},[1050,10237,2049],{"class":1264},[1050,10239,1229],{"class":1088},[1050,10241,1293],{"class":1292},[1050,10243,10229],{"class":1296},[1050,10245,1293],{"class":1292},[1050,10247,1202],{"class":1088},[1050,10249,10250],{"class":1264}," user",[1050,10252,1089],{"class":1088},[1050,10254,10229],{"class":1384},[1050,10256,1614],{"class":1088},[1050,10258,10259,10261,10263,10266,10268,10270,10272,10274,10276,10278,10280,10282,10284,10286,10288,10290],{"class":1052,"line":4260},[1050,10260,10224],{"class":1067},[1050,10262,1089],{"class":1088},[1050,10264,10265],{"class":1384},"first_name",[1050,10267,5127],{"class":1088},[1050,10269,10107],{"class":1067},[1050,10271,1089],{"class":1088},[1050,10273,2049],{"class":1264},[1050,10275,1229],{"class":1088},[1050,10277,1293],{"class":1292},[1050,10279,10265],{"class":1296},[1050,10281,1293],{"class":1292},[1050,10283,1202],{"class":1088},[1050,10285,10250],{"class":1264},[1050,10287,1089],{"class":1088},[1050,10289,10265],{"class":1384},[1050,10291,1614],{"class":1088},[1050,10293,10294,10296,10298,10301,10303,10305,10307,10309,10311,10313,10315,10317,10319,10321,10323,10325],{"class":1052,"line":4270},[1050,10295,10224],{"class":1067},[1050,10297,1089],{"class":1088},[1050,10299,10300],{"class":1384},"last_name",[1050,10302,5127],{"class":1088},[1050,10304,10107],{"class":1067},[1050,10306,1089],{"class":1088},[1050,10308,2049],{"class":1264},[1050,10310,1229],{"class":1088},[1050,10312,1293],{"class":1292},[1050,10314,10300],{"class":1296},[1050,10316,1293],{"class":1292},[1050,10318,1202],{"class":1088},[1050,10320,10250],{"class":1264},[1050,10322,1089],{"class":1088},[1050,10324,10300],{"class":1384},[1050,10326,1614],{"class":1088},[1050,10328,10329,10331,10333,10335],{"class":1052,"line":4277},[1050,10330,10224],{"class":1067},[1050,10332,1089],{"class":1088},[1050,10334,5231],{"class":1264},[1050,10336,1487],{"class":1088},[1050,10338,10339,10341],{"class":1052,"line":4305},[1050,10340,5611],{"class":1063},[1050,10342,10343],{"class":1067}," user\n",[1050,10345,10346,10349,10351,10353,10355],{"class":1052,"line":4340},[1050,10347,10348],{"class":1063},"            except",[1050,10350,10201],{"class":1067},[1050,10352,1089],{"class":1088},[1050,10354,1870],{"class":1384},[1050,10356,1567],{"class":1088},[1050,10358,10359,10361],{"class":1052,"line":4345},[1050,10360,5611],{"class":1063},[1050,10362,5635],{"class":1401},[1050,10364,10365],{"class":1052,"line":4358},[1050,10366,1620],{"class":1067},[1050,10368,10369,10372,10374,10376,10378],{"class":1052,"line":4391},[1050,10370,10371],{"class":1067},"        updated_user ",[1050,10373,1359],{"class":1088},[1050,10375,1584],{"class":1063},[1050,10377,10182],{"class":1264},[1050,10379,1487],{"class":1088},[1050,10381,10382],{"class":1052,"line":4396},[1050,10383,1620],{"class":1067},[1050,10385,10386,10388,10390,10393],{"class":1052,"line":4417},[1050,10387,2722],{"class":1063},[1050,10389,6555],{"class":1991},[1050,10391,10392],{"class":1067}," updated_user",[1050,10394,1567],{"class":1088},[1050,10396,10397,10399,10401,10403,10405,10407,10409,10411,10413,10416,10418,10420,10422,10424,10426],{"class":1052,"line":4427},[1050,10398,2303],{"class":1063},[1050,10400,1286],{"class":1264},[1050,10402,1289],{"class":1088},[1050,10404,1293],{"class":1292},[1050,10406,1886],{"class":1296},[1050,10408,1293],{"class":1292},[1050,10410,1302],{"class":1088},[1050,10412,1305],{"class":1292},[1050,10414,10415],{"class":1296},"Local user not found",[1050,10417,1293],{"class":1292},[1050,10419,1900],{"class":1088},[1050,10421,1903],{"class":1395},[1050,10423,1359],{"class":1088},[1050,10425,1908],{"class":1270},[1050,10427,1614],{"class":1088},[1050,10429,10430],{"class":1052,"line":4436},[1050,10431,1620],{"class":1067},[1050,10433,10434,10436,10438],{"class":1052,"line":4441},[1050,10435,1742],{"class":1063},[1050,10437,1286],{"class":1264},[1050,10439,1418],{"class":1088},[1050,10441,10442,10444,10446,10448,10450,10452,10455,10457],{"class":1052,"line":4473},[1050,10443,1424],{"class":1292},[1050,10445,1297],{"class":1296},[1050,10447,1293],{"class":1292},[1050,10449,1302],{"class":1088},[1050,10451,1305],{"class":1292},[1050,10453,10454],{"class":1296},"User data synchronized",[1050,10456,1293],{"class":1292},[1050,10458,1441],{"class":1088},[1050,10460,10461,10463,10465,10467,10469],{"class":1052,"line":4482},[1050,10462,1424],{"class":1292},[1050,10464,6332],{"class":1296},[1050,10466,1293],{"class":1292},[1050,10468,1302],{"class":1088},[1050,10470,3229],{"class":1088},[1050,10472,10473,10475,10477,10479,10481,10483,10485,10487],{"class":1052,"line":4489},[1050,10474,3067],{"class":1292},[1050,10476,1427],{"class":1296},[1050,10478,1293],{"class":1292},[1050,10480,1302],{"class":1088},[1050,10482,10392],{"class":1264},[1050,10484,1089],{"class":1088},[1050,10486,1427],{"class":1384},[1050,10488,1441],{"class":1088},[1050,10490,10491,10493,10495,10497,10499,10501,10503,10505],{"class":1052,"line":4494},[1050,10492,3067],{"class":1292},[1050,10494,1823],{"class":1296},[1050,10496,1293],{"class":1292},[1050,10498,1302],{"class":1088},[1050,10500,10392],{"class":1264},[1050,10502,1089],{"class":1088},[1050,10504,1823],{"class":1384},[1050,10506,1441],{"class":1088},[1050,10508,10509,10511,10513,10515,10517,10519,10521,10523],{"class":1052,"line":4522},[1050,10510,3067],{"class":1292},[1050,10512,10229],{"class":1296},[1050,10514,1293],{"class":1292},[1050,10516,1302],{"class":1088},[1050,10518,10392],{"class":1264},[1050,10520,1089],{"class":1088},[1050,10522,10229],{"class":1384},[1050,10524,1441],{"class":1088},[1050,10526,10527,10529,10531,10533,10535,10537,10539,10541],{"class":1052,"line":4531},[1050,10528,3067],{"class":1292},[1050,10530,10265],{"class":1296},[1050,10532,1293],{"class":1292},[1050,10534,1302],{"class":1088},[1050,10536,10392],{"class":1264},[1050,10538,1089],{"class":1088},[1050,10540,10265],{"class":1384},[1050,10542,1441],{"class":1088},[1050,10544,10545,10547,10549,10551,10553,10555,10557],{"class":1052,"line":4538},[1050,10546,3067],{"class":1292},[1050,10548,10300],{"class":1296},[1050,10550,1293],{"class":1292},[1050,10552,1302],{"class":1088},[1050,10554,10392],{"class":1264},[1050,10556,1089],{"class":1088},[1050,10558,10559],{"class":1384},"last_name\n",[1050,10561,10562],{"class":1052,"line":4543},[1050,10563,3304],{"class":1088},[1050,10565,10566],{"class":1052,"line":4558},[1050,10567,1493],{"class":1088},[1035,10569,10571],{"id":10570},"webhook-processing","Webhook Processing",[1040,10573,10575],{"className":1042,"code":10574,"language":1044,"meta":1045,"style":1045},"# views/webhooks.py\nimport json\nimport hmac\nimport hashlib\nfrom django.http import JsonResponse, HttpResponse\nfrom django.views.decorators.csrf import csrf_exempt\nfrom django.views.decorators.http import require_POST\nfrom django.conf import settings\nimport asyncio\n\n@csrf_exempt\n@require_POST\nasync def github_webhook(request):\n    \"\"\"Handle GitHub webhook asynchronously.\"\"\"\n    # Verify webhook signature\n    signature = request.META.get('HTTP_X_HUB_SIGNATURE_256')\n    if not signature:\n        return JsonResponse({'error': 'Missing signature'}, status=400)\n    \n    body = await request.aread()\n    \n    # Verify signature\n    expected_signature = 'sha256=' + hmac.new(\n        settings.GITHUB_WEBHOOK_SECRET.encode(),\n        body,\n        hashlib.sha256\n    ).hexdigest()\n    \n    if not hmac.compare_digest(signature, expected_signature):\n        return JsonResponse({'error': 'Invalid signature'}, status=403)\n    \n    try:\n        payload = json.loads(body)\n        event_type = request.META.get('HTTP_X_GITHUB_EVENT')\n        \n        # Process webhook asynchronously\n        await process_github_webhook(event_type, payload)\n        \n        return JsonResponse({'status': 'processed'})\n    \n    except json.JSONDecodeError:\n        return JsonResponse({'error': 'Invalid JSON'}, status=400)\n    except Exception as e:\n        return JsonResponse({'error': str(e)}, status=500)\n\nasync def process_github_webhook(event_type, payload):\n    \"\"\"Process GitHub webhook payload asynchronously.\"\"\"\n    if event_type == 'push':\n        await handle_push_event(payload)\n    elif event_type == 'pull_request':\n        await handle_pull_request_event(payload)\n    elif event_type == 'issues':\n        await handle_issues_event(payload)\n    else:\n        print(f\"Unhandled event type: {event_type}\")\n\nasync def handle_push_event(payload):\n    \"\"\"Handle push event asynchronously.\"\"\"\n    repository = payload.get('repository', {})\n    commits = payload.get('commits', [])\n    \n    print(f\"Push to {repository.get('full_name')}: {len(commits)} commits\")\n    \n    # Process commits concurrently\n    tasks = [process_commit(commit) for commit in commits]\n    await asyncio.gather(*tasks, return_exceptions=True)\n\nasync def process_commit(commit):\n    \"\"\"Process individual commit asynchronously.\"\"\"\n    commit_id = commit.get('id')\n    message = commit.get('message')\n    author = commit.get('author', {})\n    \n    print(f\"Processing commit {commit_id[:8]}: {message}\")\n    \n    # Simulate async processing\n    await asyncio.sleep(0.1)\n    \n    # Store commit data or trigger other actions\n    from asgiref.sync import sync_to_async\n    \n    @sync_to_async\n    def store_commit():\n        # Store commit information in database\n        pass\n    \n    await store_commit()\n\nasync def handle_pull_request_event(payload):\n    \"\"\"Handle pull request event asynchronously.\"\"\"\n    action = payload.get('action')\n    pull_request = payload.get('pull_request', {})\n    \n    print(f\"Pull request {action}: #{pull_request.get('number')}\")\n    \n    if action == 'opened':\n        await process_new_pull_request(pull_request)\n    elif action == 'closed':\n        await process_closed_pull_request(pull_request)\n\nasync def process_new_pull_request(pull_request):\n    \"\"\"Process new pull request asynchronously.\"\"\"\n    # Trigger CI/CD pipeline, send notifications, etc.\n    await asyncio.sleep(0.1)  # Simulate processing\n    print(f\"New PR processed: {pull_request.get('title')}\")\n\nasync def process_closed_pull_request(pull_request):\n    \"\"\"Process closed pull request asynchronously.\"\"\"\n    if pull_request.get('merged'):\n        # Handle merged PR\n        await asyncio.sleep(0.1)\n        print(f\"PR merged: {pull_request.get('title')}\")\n    else:\n        # Handle closed but not merged PR\n        print(f\"PR closed without merge: {pull_request.get('title')}\")\n\nasync def handle_issues_event(payload):\n    \"\"\"Handle issues event asynchronously.\"\"\"\n    action = payload.get('action')\n    issue = payload.get('issue', {})\n    \n    print(f\"Issue {action}: #{issue.get('number')}\")\n    \n    # Process issue asynchronously\n    await asyncio.sleep(0.1)\n",[1047,10576,10577,10582,10588,10595,10602,10621,10643,10666,10680,10686,10690,10697,10704,10719,10728,10733,10762,10773,10806,10810,10827,10831,10836,10863,10880,10887,10897,10907,10911,10936,10970,10974,10980,10999,11027,11031,11036,11055,11059,11084,11088,11100,11132,11144,11176,11180,11198,11207,11225,11239,11256,11269,11286,11299,11306,11327,11331,11345,11354,11381,11407,11411,11464,11468,11473,11504,11530,11534,11549,11558,11582,11605,11630,11634,11672,11676,11680,11696,11700,11705,11720,11724,11730,11739,11744,11749,11753,11761,11765,11779,11788,11812,11837,11841,11886,11890,11908,11921,11938,11951,11955,11969,11978,11983,12002,12037,12041,12055,12064,12086,12091,12107,12142,12148,12153,12188,12192,12206,12215,12237,12263,12267,12310,12314,12319],{"__ignoreMap":1045},[1050,10578,10579],{"class":1052,"line":1053},[1050,10580,10581],{"class":1056},"# views/webhooks.py\n",[1050,10583,10584,10586],{"class":1052,"line":1060},[1050,10585,1064],{"class":1063},[1050,10587,2206],{"class":1067},[1050,10589,10590,10592],{"class":1052,"line":1071},[1050,10591,1064],{"class":1063},[1050,10593,10594],{"class":1067}," hmac\n",[1050,10596,10597,10599],{"class":1052,"line":1079},[1050,10598,1064],{"class":1063},[1050,10600,10601],{"class":1067}," hashlib\n",[1050,10603,10604,10606,10608,10610,10612,10614,10616,10618],{"class":1052,"line":1100},[1050,10605,1082],{"class":1063},[1050,10607,1085],{"class":1067},[1050,10609,1089],{"class":1088},[1050,10611,1092],{"class":1067},[1050,10613,1064],{"class":1063},[1050,10615,1286],{"class":1067},[1050,10617,1202],{"class":1088},[1050,10619,10620],{"class":1067}," HttpResponse\n",[1050,10622,10623,10625,10627,10629,10631,10633,10635,10637,10639,10641],{"class":1052,"line":1117},[1050,10624,1082],{"class":1063},[1050,10626,1085],{"class":1067},[1050,10628,1089],{"class":1088},[1050,10630,1126],{"class":1067},[1050,10632,1089],{"class":1088},[1050,10634,1131],{"class":1067},[1050,10636,1089],{"class":1088},[1050,10638,1160],{"class":1067},[1050,10640,1064],{"class":1063},[1050,10642,1165],{"class":1067},[1050,10644,10645,10647,10649,10651,10653,10655,10657,10659,10661,10663],{"class":1052,"line":1143},[1050,10646,1082],{"class":1063},[1050,10648,1085],{"class":1067},[1050,10650,1089],{"class":1088},[1050,10652,1126],{"class":1067},[1050,10654,1089],{"class":1088},[1050,10656,1131],{"class":1067},[1050,10658,1089],{"class":1088},[1050,10660,1092],{"class":1067},[1050,10662,1064],{"class":1063},[1050,10664,10665],{"class":1067}," require_POST\n",[1050,10667,10668,10670,10672,10674,10676,10678],{"class":1052,"line":1168},[1050,10669,1082],{"class":1063},[1050,10671,1085],{"class":1067},[1050,10673,1089],{"class":1088},[1050,10675,8461],{"class":1067},[1050,10677,1064],{"class":1063},[1050,10679,8466],{"class":1067},[1050,10681,10682,10684],{"class":1052,"line":1186},[1050,10683,1064],{"class":1063},[1050,10685,1068],{"class":1067},[1050,10687,10688],{"class":1052,"line":1208},[1050,10689,1212],{"emptyLinePlaceholder":1211},[1050,10691,10692,10694],{"class":1052,"line":1215},[1050,10693,1921],{"class":1088},[1050,10695,10696],{"class":1225},"csrf_exempt\n",[1050,10698,10699,10701],{"class":1052,"line":1239},[1050,10700,1921],{"class":1088},[1050,10702,10703],{"class":1225},"require_POST\n",[1050,10705,10706,10708,10710,10713,10715,10717],{"class":1052,"line":1253},[1050,10707,1219],{"class":1218},[1050,10709,1222],{"class":1218},[1050,10711,10712],{"class":1225}," github_webhook",[1050,10714,1229],{"class":1088},[1050,10716,1233],{"class":1232},[1050,10718,1236],{"class":1088},[1050,10720,10721,10723,10726],{"class":1052,"line":1280},[1050,10722,1243],{"class":1242},[1050,10724,10725],{"class":1246},"Handle GitHub webhook asynchronously.",[1050,10727,1250],{"class":1242},[1050,10729,10730],{"class":1052,"line":1316},[1050,10731,10732],{"class":1056},"    # Verify webhook signature\n",[1050,10734,10735,10738,10740,10742,10744,10747,10749,10751,10753,10755,10758,10760],{"class":1052,"line":1321},[1050,10736,10737],{"class":1067},"    signature ",[1050,10739,1359],{"class":1088},[1050,10741,1983],{"class":1067},[1050,10743,1089],{"class":1088},[1050,10745,10746],{"class":2877},"META",[1050,10748,1089],{"class":1088},[1050,10750,2049],{"class":1264},[1050,10752,1229],{"class":1088},[1050,10754,1293],{"class":1292},[1050,10756,10757],{"class":1296},"HTTP_X_HUB_SIGNATURE_256",[1050,10759,1293],{"class":1292},[1050,10761,1614],{"class":1088},[1050,10763,10764,10766,10768,10771],{"class":1052,"line":1337},[1050,10765,1980],{"class":1063},[1050,10767,6555],{"class":1991},[1050,10769,10770],{"class":1067}," signature",[1050,10772,1567],{"class":1088},[1050,10774,10775,10777,10779,10781,10783,10785,10787,10789,10791,10794,10796,10798,10800,10802,10804],{"class":1052,"line":1347},[1050,10776,1742],{"class":1063},[1050,10778,1286],{"class":1264},[1050,10780,1289],{"class":1088},[1050,10782,1293],{"class":1292},[1050,10784,1886],{"class":1296},[1050,10786,1293],{"class":1292},[1050,10788,1302],{"class":1088},[1050,10790,1305],{"class":1292},[1050,10792,10793],{"class":1296},"Missing signature",[1050,10795,1293],{"class":1292},[1050,10797,1900],{"class":1088},[1050,10799,1903],{"class":1395},[1050,10801,1359],{"class":1088},[1050,10803,2391],{"class":1270},[1050,10805,1614],{"class":1088},[1050,10807,10808],{"class":1052,"line":1353},[1050,10809,1499],{"class":1067},[1050,10811,10812,10815,10817,10819,10821,10823,10825],{"class":1052,"line":1365},[1050,10813,10814],{"class":1067},"    body ",[1050,10816,1359],{"class":1088},[1050,10818,1584],{"class":1063},[1050,10820,1983],{"class":1067},[1050,10822,1089],{"class":1088},[1050,10824,2236],{"class":1264},[1050,10826,1487],{"class":1088},[1050,10828,10829],{"class":1052,"line":1407},[1050,10830,1499],{"class":1067},[1050,10832,10833],{"class":1052,"line":1421},[1050,10834,10835],{"class":1056},"    # Verify signature\n",[1050,10837,10838,10841,10843,10845,10848,10850,10853,10856,10858,10861],{"class":1052,"line":1444},[1050,10839,10840],{"class":1067},"    expected_signature ",[1050,10842,1359],{"class":1088},[1050,10844,1305],{"class":1292},[1050,10846,10847],{"class":1296},"sha256=",[1050,10849,1293],{"class":1292},[1050,10851,10852],{"class":1991}," +",[1050,10854,10855],{"class":1067}," hmac",[1050,10857,1089],{"class":1088},[1050,10859,10860],{"class":1264},"new",[1050,10862,4843],{"class":1088},[1050,10864,10865,10868,10870,10873,10875,10878],{"class":1052,"line":1464},[1050,10866,10867],{"class":1264},"        settings",[1050,10869,1089],{"class":1088},[1050,10871,10872],{"class":2877},"GITHUB_WEBHOOK_SECRET",[1050,10874,1089],{"class":1088},[1050,10876,10877],{"class":1264},"encode",[1050,10879,7400],{"class":1088},[1050,10881,10882,10885],{"class":1052,"line":1490},[1050,10883,10884],{"class":1264},"        body",[1050,10886,1441],{"class":1088},[1050,10888,10889,10892,10894],{"class":1052,"line":1496},[1050,10890,10891],{"class":1264},"        hashlib",[1050,10893,1089],{"class":1088},[1050,10895,10896],{"class":1384},"sha256\n",[1050,10898,10899,10902,10905],{"class":1052,"line":1502},[1050,10900,10901],{"class":1088},"    ).",[1050,10903,10904],{"class":1264},"hexdigest",[1050,10906,1487],{"class":1088},[1050,10908,10909],{"class":1052,"line":1525},[1050,10910,1499],{"class":1067},[1050,10912,10913,10915,10917,10919,10921,10924,10926,10929,10931,10934],{"class":1052,"line":1530},[1050,10914,1980],{"class":1063},[1050,10916,6555],{"class":1991},[1050,10918,10855],{"class":1067},[1050,10920,1089],{"class":1088},[1050,10922,10923],{"class":1264},"compare_digest",[1050,10925,1229],{"class":1088},[1050,10927,10928],{"class":1264},"signature",[1050,10930,1202],{"class":1088},[1050,10932,10933],{"class":1264}," expected_signature",[1050,10935,1236],{"class":1088},[1050,10937,10938,10940,10942,10944,10946,10948,10950,10952,10954,10957,10959,10961,10963,10965,10968],{"class":1052,"line":1551},[1050,10939,1742],{"class":1063},[1050,10941,1286],{"class":1264},[1050,10943,1289],{"class":1088},[1050,10945,1293],{"class":1292},[1050,10947,1886],{"class":1296},[1050,10949,1293],{"class":1292},[1050,10951,1302],{"class":1088},[1050,10953,1305],{"class":1292},[1050,10955,10956],{"class":1296},"Invalid signature",[1050,10958,1293],{"class":1292},[1050,10960,1900],{"class":1088},[1050,10962,1903],{"class":1395},[1050,10964,1359],{"class":1088},[1050,10966,10967],{"class":1270},"403",[1050,10969,1614],{"class":1088},[1050,10971,10972],{"class":1052,"line":1561},[1050,10973,1499],{"class":1067},[1050,10975,10976,10978],{"class":1052,"line":1570},[1050,10977,1564],{"class":1063},[1050,10979,1567],{"class":1088},[1050,10981,10982,10985,10987,10989,10991,10993,10995,10997],{"class":1052,"line":1576},[1050,10983,10984],{"class":1067},"        payload ",[1050,10986,1359],{"class":1088},[1050,10988,2249],{"class":1067},[1050,10990,1089],{"class":1088},[1050,10992,2254],{"class":1264},[1050,10994,1229],{"class":1088},[1050,10996,2259],{"class":1264},[1050,10998,1614],{"class":1088},[1050,11000,11001,11004,11006,11008,11010,11012,11014,11016,11018,11020,11023,11025],{"class":1052,"line":1617},[1050,11002,11003],{"class":1067},"        event_type ",[1050,11005,1359],{"class":1088},[1050,11007,1983],{"class":1067},[1050,11009,1089],{"class":1088},[1050,11011,10746],{"class":2877},[1050,11013,1089],{"class":1088},[1050,11015,2049],{"class":1264},[1050,11017,1229],{"class":1088},[1050,11019,1293],{"class":1292},[1050,11021,11022],{"class":1296},"HTTP_X_GITHUB_EVENT",[1050,11024,1293],{"class":1292},[1050,11026,1614],{"class":1088},[1050,11028,11029],{"class":1052,"line":1623},[1050,11030,1620],{"class":1067},[1050,11032,11033],{"class":1052,"line":1629},[1050,11034,11035],{"class":1056},"        # Process webhook asynchronously\n",[1050,11037,11038,11040,11043,11045,11048,11050,11053],{"class":1052,"line":1657},[1050,11039,5452],{"class":1063},[1050,11041,11042],{"class":1264}," process_github_webhook",[1050,11044,1229],{"class":1088},[1050,11046,11047],{"class":1264},"event_type",[1050,11049,1202],{"class":1088},[1050,11051,11052],{"class":1264}," payload",[1050,11054,1614],{"class":1088},[1050,11056,11057],{"class":1052,"line":1695},[1050,11058,1620],{"class":1067},[1050,11060,11061,11063,11065,11067,11069,11071,11073,11075,11077,11080,11082],{"class":1052,"line":1700},[1050,11062,1742],{"class":1063},[1050,11064,1286],{"class":1264},[1050,11066,1289],{"class":1088},[1050,11068,1293],{"class":1292},[1050,11070,2080],{"class":1296},[1050,11072,1293],{"class":1292},[1050,11074,1302],{"class":1088},[1050,11076,1305],{"class":1292},[1050,11078,11079],{"class":1296},"processed",[1050,11081,1293],{"class":1292},[1050,11083,1313],{"class":1088},[1050,11085,11086],{"class":1052,"line":1734},[1050,11087,1499],{"class":1067},[1050,11089,11090,11092,11094,11096,11098],{"class":1052,"line":1739},[1050,11091,1863],{"class":1063},[1050,11093,2249],{"class":1067},[1050,11095,1089],{"class":1088},[1050,11097,2356],{"class":1384},[1050,11099,1567],{"class":1088},[1050,11101,11102,11104,11106,11108,11110,11112,11114,11116,11118,11120,11122,11124,11126,11128,11130],{"class":1052,"line":1749},[1050,11103,1742],{"class":1063},[1050,11105,1286],{"class":1264},[1050,11107,1289],{"class":1088},[1050,11109,1293],{"class":1292},[1050,11111,1886],{"class":1296},[1050,11113,1293],{"class":1292},[1050,11115,1302],{"class":1088},[1050,11117,1305],{"class":1292},[1050,11119,2380],{"class":1296},[1050,11121,1293],{"class":1292},[1050,11123,1900],{"class":1088},[1050,11125,1903],{"class":1395},[1050,11127,1359],{"class":1088},[1050,11129,2391],{"class":1270},[1050,11131,1614],{"class":1088},[1050,11133,11134,11136,11138,11140,11142],{"class":1052,"line":1768},[1050,11135,1863],{"class":1063},[1050,11137,3932],{"class":1673},[1050,11139,2029],{"class":1063},[1050,11141,3937],{"class":1067},[1050,11143,1567],{"class":1088},[1050,11145,11146,11148,11150,11152,11154,11156,11158,11160,11162,11164,11166,11168,11170,11172,11174],{"class":1052,"line":1787},[1050,11147,1742],{"class":1063},[1050,11149,1286],{"class":1264},[1050,11151,1289],{"class":1088},[1050,11153,1293],{"class":1292},[1050,11155,1886],{"class":1296},[1050,11157,1293],{"class":1292},[1050,11159,1302],{"class":1088},[1050,11161,3959],{"class":1673},[1050,11163,1229],{"class":1088},[1050,11165,3964],{"class":1264},[1050,11167,3967],{"class":1088},[1050,11169,1903],{"class":1395},[1050,11171,1359],{"class":1088},[1050,11173,3974],{"class":1270},[1050,11175,1614],{"class":1088},[1050,11177,11178],{"class":1052,"line":1807},[1050,11179,1212],{"emptyLinePlaceholder":1211},[1050,11181,11182,11184,11186,11188,11190,11192,11194,11196],{"class":1052,"line":1828},[1050,11183,1219],{"class":1218},[1050,11185,1222],{"class":1218},[1050,11187,11042],{"class":1225},[1050,11189,1229],{"class":1088},[1050,11191,11047],{"class":1232},[1050,11193,1202],{"class":1088},[1050,11195,11052],{"class":1232},[1050,11197,1236],{"class":1088},[1050,11199,11200,11202,11205],{"class":1052,"line":1850},[1050,11201,1243],{"class":1242},[1050,11203,11204],{"class":1246},"Process GitHub webhook payload asynchronously.",[1050,11206,1250],{"class":1242},[1050,11208,11209,11211,11214,11216,11218,11221,11223],{"class":1052,"line":1855},[1050,11210,1980],{"class":1063},[1050,11212,11213],{"class":1067}," event_type ",[1050,11215,6566],{"class":1991},[1050,11217,1305],{"class":1292},[1050,11219,11220],{"class":1296},"push",[1050,11222,1293],{"class":1292},[1050,11224,1567],{"class":1088},[1050,11226,11227,11229,11232,11234,11237],{"class":1052,"line":1860},[1050,11228,5452],{"class":1063},[1050,11230,11231],{"class":1264}," handle_push_event",[1050,11233,1229],{"class":1088},[1050,11235,11236],{"class":1264},"payload",[1050,11238,1614],{"class":1088},[1050,11240,11241,11243,11245,11247,11249,11252,11254],{"class":1052,"line":1875},[1050,11242,2175],{"class":1063},[1050,11244,11213],{"class":1067},[1050,11246,6566],{"class":1991},[1050,11248,1305],{"class":1292},[1050,11250,11251],{"class":1296},"pull_request",[1050,11253,1293],{"class":1292},[1050,11255,1567],{"class":1088},[1050,11257,11258,11260,11263,11265,11267],{"class":1052,"line":1913},[1050,11259,5452],{"class":1063},[1050,11261,11262],{"class":1264}," handle_pull_request_event",[1050,11264,1229],{"class":1088},[1050,11266,11236],{"class":1264},[1050,11268,1614],{"class":1088},[1050,11270,11271,11273,11275,11277,11279,11282,11284],{"class":1052,"line":1918},[1050,11272,2175],{"class":1063},[1050,11274,11213],{"class":1067},[1050,11276,6566],{"class":1991},[1050,11278,1305],{"class":1292},[1050,11280,11281],{"class":1296},"issues",[1050,11283,1293],{"class":1292},[1050,11285,1567],{"class":1088},[1050,11287,11288,11290,11293,11295,11297],{"class":1052,"line":1951},[1050,11289,5452],{"class":1063},[1050,11291,11292],{"class":1264}," handle_issues_event",[1050,11294,1229],{"class":1088},[1050,11296,11236],{"class":1264},[1050,11298,1614],{"class":1088},[1050,11300,11301,11304],{"class":1052,"line":1967},[1050,11302,11303],{"class":1063},"    else",[1050,11305,1567],{"class":1088},[1050,11307,11308,11310,11312,11314,11317,11319,11321,11323,11325],{"class":1052,"line":1977},[1050,11309,5652],{"class":1840},[1050,11311,1229],{"class":1088},[1050,11313,5657],{"class":1218},[1050,11315,11316],{"class":1296},"\"Unhandled event type: ",[1050,11318,2462],{"class":2461},[1050,11320,11047],{"class":1264},[1050,11322,2490],{"class":2461},[1050,11324,1930],{"class":1296},[1050,11326,1614],{"class":1088},[1050,11328,11329],{"class":1052,"line":2003},[1050,11330,1212],{"emptyLinePlaceholder":1211},[1050,11332,11333,11335,11337,11339,11341,11343],{"class":1052,"line":2009},[1050,11334,1219],{"class":1218},[1050,11336,1222],{"class":1218},[1050,11338,11231],{"class":1225},[1050,11340,1229],{"class":1088},[1050,11342,11236],{"class":1232},[1050,11344,1236],{"class":1088},[1050,11346,11347,11349,11352],{"class":1052,"line":2037},[1050,11348,1243],{"class":1242},[1050,11350,11351],{"class":1246},"Handle push event asynchronously.",[1050,11353,1250],{"class":1242},[1050,11355,11356,11359,11361,11363,11365,11367,11369,11371,11374,11376,11378],{"class":1052,"line":2070},[1050,11357,11358],{"class":1067},"    repository ",[1050,11360,1359],{"class":1088},[1050,11362,11052],{"class":1067},[1050,11364,1089],{"class":1088},[1050,11366,2049],{"class":1264},[1050,11368,1229],{"class":1088},[1050,11370,1293],{"class":1292},[1050,11372,11373],{"class":1296},"repository",[1050,11375,1293],{"class":1292},[1050,11377,1202],{"class":1088},[1050,11379,11380],{"class":1088}," {})\n",[1050,11382,11383,11386,11388,11390,11392,11394,11396,11398,11401,11403,11405],{"class":1052,"line":2090},[1050,11384,11385],{"class":1067},"    commits ",[1050,11387,1359],{"class":1088},[1050,11389,11052],{"class":1067},[1050,11391,1089],{"class":1088},[1050,11393,2049],{"class":1264},[1050,11395,1229],{"class":1088},[1050,11397,1293],{"class":1292},[1050,11399,11400],{"class":1296},"commits",[1050,11402,1293],{"class":1292},[1050,11404,1202],{"class":1088},[1050,11406,7806],{"class":1088},[1050,11408,11409],{"class":1052,"line":2109},[1050,11410,1499],{"class":1067},[1050,11412,11413,11416,11418,11420,11423,11425,11427,11429,11431,11433,11435,11438,11440,11442,11444,11446,11448,11451,11453,11455,11457,11459,11462],{"class":1052,"line":2124},[1050,11414,11415],{"class":1840},"    print",[1050,11417,1229],{"class":1088},[1050,11419,5657],{"class":1218},[1050,11421,11422],{"class":1296},"\"Push to ",[1050,11424,2462],{"class":2461},[1050,11426,11373],{"class":1264},[1050,11428,1089],{"class":1088},[1050,11430,2049],{"class":1264},[1050,11432,1229],{"class":1088},[1050,11434,1293],{"class":1292},[1050,11436,11437],{"class":1296},"full_name",[1050,11439,1293],{"class":1292},[1050,11441,1274],{"class":1088},[1050,11443,2490],{"class":2461},[1050,11445,5669],{"class":1296},[1050,11447,2462],{"class":2461},[1050,11449,11450],{"class":1840},"len",[1050,11452,1229],{"class":1088},[1050,11454,11400],{"class":1264},[1050,11456,1274],{"class":1088},[1050,11458,2490],{"class":2461},[1050,11460,11461],{"class":1296}," commits\"",[1050,11463,1614],{"class":1088},[1050,11465,11466],{"class":1052,"line":2132},[1050,11467,1499],{"class":1067},[1050,11469,11470],{"class":1052,"line":2167},[1050,11471,11472],{"class":1056},"    # Process commits concurrently\n",[1050,11474,11475,11478,11480,11482,11485,11487,11490,11492,11494,11497,11499,11502],{"class":1052,"line":2172},[1050,11476,11477],{"class":1067},"    tasks ",[1050,11479,1359],{"class":1088},[1050,11481,6569],{"class":1088},[1050,11483,11484],{"class":1264},"process_commit",[1050,11486,1229],{"class":1088},[1050,11488,11489],{"class":1264},"commit",[1050,11491,1274],{"class":1088},[1050,11493,1371],{"class":1063},[1050,11495,11496],{"class":1067}," commit ",[1050,11498,1377],{"class":1063},[1050,11500,11501],{"class":1067}," commits",[1050,11503,3032],{"class":1088},[1050,11505,11506,11508,11510,11512,11514,11516,11518,11520,11522,11524,11526,11528],{"class":1052,"line":2194},[1050,11507,1256],{"class":1063},[1050,11509,1259],{"class":1067},[1050,11511,1089],{"class":1088},[1050,11513,1719],{"class":1264},[1050,11515,1229],{"class":1088},[1050,11517,4292],{"class":1991},[1050,11519,6745],{"class":1264},[1050,11521,1202],{"class":1088},[1050,11523,6750],{"class":1395},[1050,11525,1359],{"class":1088},[1050,11527,1402],{"class":1401},[1050,11529,1614],{"class":1088},[1050,11531,11532],{"class":1052,"line":2200},[1050,11533,1212],{"emptyLinePlaceholder":1211},[1050,11535,11536,11538,11540,11543,11545,11547],{"class":1052,"line":2209},[1050,11537,1219],{"class":1218},[1050,11539,1222],{"class":1218},[1050,11541,11542],{"class":1225}," process_commit",[1050,11544,1229],{"class":1088},[1050,11546,11489],{"class":1232},[1050,11548,1236],{"class":1088},[1050,11550,11551,11553,11556],{"class":1052,"line":2214},[1050,11552,1243],{"class":1242},[1050,11554,11555],{"class":1246},"Process individual commit asynchronously.",[1050,11557,1250],{"class":1242},[1050,11559,11560,11563,11565,11568,11570,11572,11574,11576,11578,11580],{"class":1052,"line":2222},[1050,11561,11562],{"class":1067},"    commit_id ",[1050,11564,1359],{"class":1088},[1050,11566,11567],{"class":1067}," commit",[1050,11569,1089],{"class":1088},[1050,11571,2049],{"class":1264},[1050,11573,1229],{"class":1088},[1050,11575,1293],{"class":1292},[1050,11577,1427],{"class":1296},[1050,11579,1293],{"class":1292},[1050,11581,1614],{"class":1088},[1050,11583,11584,11587,11589,11591,11593,11595,11597,11599,11601,11603],{"class":1052,"line":2241},[1050,11585,11586],{"class":1067},"    message ",[1050,11588,1359],{"class":1088},[1050,11590,11567],{"class":1067},[1050,11592,1089],{"class":1088},[1050,11594,2049],{"class":1264},[1050,11596,1229],{"class":1088},[1050,11598,1293],{"class":1292},[1050,11600,1297],{"class":1296},[1050,11602,1293],{"class":1292},[1050,11604,1614],{"class":1088},[1050,11606,11607,11610,11612,11614,11616,11618,11620,11622,11624,11626,11628],{"class":1052,"line":2264},[1050,11608,11609],{"class":1067},"    author ",[1050,11611,1359],{"class":1088},[1050,11613,11567],{"class":1067},[1050,11615,1089],{"class":1088},[1050,11617,2049],{"class":1264},[1050,11619,1229],{"class":1088},[1050,11621,1293],{"class":1292},[1050,11623,1651],{"class":1296},[1050,11625,1293],{"class":1292},[1050,11627,1202],{"class":1088},[1050,11629,11380],{"class":1088},[1050,11631,11632],{"class":1052,"line":2270},[1050,11633,1499],{"class":1067},[1050,11635,11636,11638,11640,11642,11645,11647,11650,11653,11656,11658,11660,11662,11664,11666,11668,11670],{"class":1052,"line":2276},[1050,11637,11415],{"class":1840},[1050,11639,1229],{"class":1088},[1050,11641,5657],{"class":1218},[1050,11643,11644],{"class":1296},"\"Processing commit ",[1050,11646,2462],{"class":2461},[1050,11648,11649],{"class":1264},"commit_id",[1050,11651,11652],{"class":1088},"[:",[1050,11654,11655],{"class":1270},"8",[1050,11657,8811],{"class":1088},[1050,11659,2490],{"class":2461},[1050,11661,5669],{"class":1296},[1050,11663,2462],{"class":2461},[1050,11665,1297],{"class":1264},[1050,11667,2490],{"class":2461},[1050,11669,1930],{"class":1296},[1050,11671,1614],{"class":1088},[1050,11673,11674],{"class":1052,"line":2295},[1050,11675,1499],{"class":1067},[1050,11677,11678],{"class":1052,"line":2300},[1050,11679,2429],{"class":1056},[1050,11681,11682,11684,11686,11688,11690,11692,11694],{"class":1052,"line":2341},[1050,11683,1256],{"class":1063},[1050,11685,1259],{"class":1067},[1050,11687,1089],{"class":1088},[1050,11689,1265],{"class":1264},[1050,11691,1229],{"class":1088},[1050,11693,1271],{"class":1270},[1050,11695,1614],{"class":1088},[1050,11697,11698],{"class":1052,"line":2346},[1050,11699,1499],{"class":1067},[1050,11701,11702],{"class":1052,"line":2361},[1050,11703,11704],{"class":1056},"    # Store commit data or trigger other actions\n",[1050,11706,11707,11710,11712,11714,11716,11718],{"class":1052,"line":2396},[1050,11708,11709],{"class":1063},"    from",[1050,11711,1173],{"class":1067},[1050,11713,1089],{"class":1088},[1050,11715,1178],{"class":1067},[1050,11717,1064],{"class":1063},[1050,11719,1183],{"class":1067},[1050,11721,11722],{"class":1052,"line":2401},[1050,11723,1499],{"class":1067},[1050,11725,11726,11728],{"class":1052,"line":2416},[1050,11727,7096],{"class":1088},[1050,11729,4813],{"class":1225},[1050,11731,11732,11734,11737],{"class":1052,"line":2426},[1050,11733,7103],{"class":1218},[1050,11735,11736],{"class":1225}," store_commit",[1050,11738,4825],{"class":1088},[1050,11740,11741],{"class":1052,"line":2432},[1050,11742,11743],{"class":1056},"        # Store commit information in database\n",[1050,11745,11746],{"class":1052,"line":2450},[1050,11747,11748],{"class":1063},"        pass\n",[1050,11750,11751],{"class":1052,"line":3797},[1050,11752,1499],{"class":1067},[1050,11754,11755,11757,11759],{"class":1052,"line":3816},[1050,11756,1256],{"class":1063},[1050,11758,11736],{"class":1264},[1050,11760,1487],{"class":1088},[1050,11762,11763],{"class":1052,"line":3821},[1050,11764,1212],{"emptyLinePlaceholder":1211},[1050,11766,11767,11769,11771,11773,11775,11777],{"class":1052,"line":3827},[1050,11768,1219],{"class":1218},[1050,11770,1222],{"class":1218},[1050,11772,11262],{"class":1225},[1050,11774,1229],{"class":1088},[1050,11776,11236],{"class":1232},[1050,11778,1236],{"class":1088},[1050,11780,11781,11783,11786],{"class":1052,"line":3849},[1050,11782,1243],{"class":1242},[1050,11784,11785],{"class":1246},"Handle pull request event asynchronously.",[1050,11787,1250],{"class":1242},[1050,11789,11790,11793,11795,11797,11799,11801,11803,11805,11808,11810],{"class":1052,"line":3854},[1050,11791,11792],{"class":1067},"    action ",[1050,11794,1359],{"class":1088},[1050,11796,11052],{"class":1067},[1050,11798,1089],{"class":1088},[1050,11800,2049],{"class":1264},[1050,11802,1229],{"class":1088},[1050,11804,1293],{"class":1292},[1050,11806,11807],{"class":1296},"action",[1050,11809,1293],{"class":1292},[1050,11811,1614],{"class":1088},[1050,11813,11814,11817,11819,11821,11823,11825,11827,11829,11831,11833,11835],{"class":1052,"line":3876},[1050,11815,11816],{"class":1067},"    pull_request ",[1050,11818,1359],{"class":1088},[1050,11820,11052],{"class":1067},[1050,11822,1089],{"class":1088},[1050,11824,2049],{"class":1264},[1050,11826,1229],{"class":1088},[1050,11828,1293],{"class":1292},[1050,11830,11251],{"class":1296},[1050,11832,1293],{"class":1292},[1050,11834,1202],{"class":1088},[1050,11836,11380],{"class":1088},[1050,11838,11839],{"class":1052,"line":3881},[1050,11840,1499],{"class":1067},[1050,11842,11843,11845,11847,11849,11852,11854,11856,11858,11861,11863,11865,11867,11869,11871,11873,11876,11878,11880,11882,11884],{"class":1052,"line":3894},[1050,11844,11415],{"class":1840},[1050,11846,1229],{"class":1088},[1050,11848,5657],{"class":1218},[1050,11850,11851],{"class":1296},"\"Pull request ",[1050,11853,2462],{"class":2461},[1050,11855,11807],{"class":1264},[1050,11857,2490],{"class":2461},[1050,11859,11860],{"class":1296},": #",[1050,11862,2462],{"class":2461},[1050,11864,11251],{"class":1264},[1050,11866,1089],{"class":1088},[1050,11868,2049],{"class":1264},[1050,11870,1229],{"class":1088},[1050,11872,1293],{"class":1292},[1050,11874,11875],{"class":1296},"number",[1050,11877,1293],{"class":1292},[1050,11879,1274],{"class":1088},[1050,11881,2490],{"class":2461},[1050,11883,1930],{"class":1296},[1050,11885,1614],{"class":1088},[1050,11887,11888],{"class":1052,"line":3927},[1050,11889,1499],{"class":1067},[1050,11891,11892,11894,11897,11899,11901,11904,11906],{"class":1052,"line":3942},[1050,11893,1980],{"class":1063},[1050,11895,11896],{"class":1067}," action ",[1050,11898,6566],{"class":1991},[1050,11900,1305],{"class":1292},[1050,11902,11903],{"class":1296},"opened",[1050,11905,1293],{"class":1292},[1050,11907,1567],{"class":1088},[1050,11909,11910,11912,11915,11917,11919],{"class":1052,"line":3979},[1050,11911,5452],{"class":1063},[1050,11913,11914],{"class":1264}," process_new_pull_request",[1050,11916,1229],{"class":1088},[1050,11918,11251],{"class":1264},[1050,11920,1614],{"class":1088},[1050,11922,11923,11925,11927,11929,11931,11934,11936],{"class":1052,"line":3984},[1050,11924,2175],{"class":1063},[1050,11926,11896],{"class":1067},[1050,11928,6566],{"class":1991},[1050,11930,1305],{"class":1292},[1050,11932,11933],{"class":1296},"closed",[1050,11935,1293],{"class":1292},[1050,11937,1567],{"class":1088},[1050,11939,11940,11942,11945,11947,11949],{"class":1052,"line":4016},[1050,11941,5452],{"class":1063},[1050,11943,11944],{"class":1264}," process_closed_pull_request",[1050,11946,1229],{"class":1088},[1050,11948,11251],{"class":1264},[1050,11950,1614],{"class":1088},[1050,11952,11953],{"class":1052,"line":4026},[1050,11954,1212],{"emptyLinePlaceholder":1211},[1050,11956,11957,11959,11961,11963,11965,11967],{"class":1052,"line":4033},[1050,11958,1219],{"class":1218},[1050,11960,1222],{"class":1218},[1050,11962,11914],{"class":1225},[1050,11964,1229],{"class":1088},[1050,11966,11251],{"class":1232},[1050,11968,1236],{"class":1088},[1050,11970,11971,11973,11976],{"class":1052,"line":4050},[1050,11972,1243],{"class":1242},[1050,11974,11975],{"class":1246},"Process new pull request asynchronously.",[1050,11977,1250],{"class":1242},[1050,11979,11980],{"class":1052,"line":4069},[1050,11981,11982],{"class":1056},"    # Trigger CI/CD pipeline, send notifications, etc.\n",[1050,11984,11985,11987,11989,11991,11993,11995,11997,11999],{"class":1052,"line":4074},[1050,11986,1256],{"class":1063},[1050,11988,1259],{"class":1067},[1050,11990,1089],{"class":1088},[1050,11992,1265],{"class":1264},[1050,11994,1229],{"class":1088},[1050,11996,1271],{"class":1270},[1050,11998,1274],{"class":1088},[1050,12000,12001],{"class":1056},"  # Simulate processing\n",[1050,12003,12004,12006,12008,12010,12013,12015,12017,12019,12021,12023,12025,12027,12029,12031,12033,12035],{"class":1052,"line":4108},[1050,12005,11415],{"class":1840},[1050,12007,1229],{"class":1088},[1050,12009,5657],{"class":1218},[1050,12011,12012],{"class":1296},"\"New PR processed: ",[1050,12014,2462],{"class":2461},[1050,12016,11251],{"class":1264},[1050,12018,1089],{"class":1088},[1050,12020,2049],{"class":1264},[1050,12022,1229],{"class":1088},[1050,12024,1293],{"class":1292},[1050,12026,1449],{"class":1296},[1050,12028,1293],{"class":1292},[1050,12030,1274],{"class":1088},[1050,12032,2490],{"class":2461},[1050,12034,1930],{"class":1296},[1050,12036,1614],{"class":1088},[1050,12038,12039],{"class":1052,"line":4113},[1050,12040,1212],{"emptyLinePlaceholder":1211},[1050,12042,12043,12045,12047,12049,12051,12053],{"class":1052,"line":4126},[1050,12044,1219],{"class":1218},[1050,12046,1222],{"class":1218},[1050,12048,11944],{"class":1225},[1050,12050,1229],{"class":1088},[1050,12052,11251],{"class":1232},[1050,12054,1236],{"class":1088},[1050,12056,12057,12059,12062],{"class":1052,"line":4131},[1050,12058,1243],{"class":1242},[1050,12060,12061],{"class":1246},"Process closed pull request asynchronously.",[1050,12063,1250],{"class":1242},[1050,12065,12066,12068,12071,12073,12075,12077,12079,12082,12084],{"class":1052,"line":4144},[1050,12067,1980],{"class":1063},[1050,12069,12070],{"class":1067}," pull_request",[1050,12072,1089],{"class":1088},[1050,12074,2049],{"class":1264},[1050,12076,1229],{"class":1088},[1050,12078,1293],{"class":1292},[1050,12080,12081],{"class":1296},"merged",[1050,12083,1293],{"class":1292},[1050,12085,1236],{"class":1088},[1050,12087,12088],{"class":1052,"line":4177},[1050,12089,12090],{"class":1056},"        # Handle merged PR\n",[1050,12092,12093,12095,12097,12099,12101,12103,12105],{"class":1052,"line":4190},[1050,12094,5452],{"class":1063},[1050,12096,1259],{"class":1067},[1050,12098,1089],{"class":1088},[1050,12100,1265],{"class":1264},[1050,12102,1229],{"class":1088},[1050,12104,1271],{"class":1270},[1050,12106,1614],{"class":1088},[1050,12108,12109,12111,12113,12115,12118,12120,12122,12124,12126,12128,12130,12132,12134,12136,12138,12140],{"class":1052,"line":4223},[1050,12110,5652],{"class":1840},[1050,12112,1229],{"class":1088},[1050,12114,5657],{"class":1218},[1050,12116,12117],{"class":1296},"\"PR merged: ",[1050,12119,2462],{"class":2461},[1050,12121,11251],{"class":1264},[1050,12123,1089],{"class":1088},[1050,12125,2049],{"class":1264},[1050,12127,1229],{"class":1088},[1050,12129,1293],{"class":1292},[1050,12131,1449],{"class":1296},[1050,12133,1293],{"class":1292},[1050,12135,1274],{"class":1088},[1050,12137,2490],{"class":2461},[1050,12139,1930],{"class":1296},[1050,12141,1614],{"class":1088},[1050,12143,12144,12146],{"class":1052,"line":4228},[1050,12145,11303],{"class":1063},[1050,12147,1567],{"class":1088},[1050,12149,12150],{"class":1052,"line":4260},[1050,12151,12152],{"class":1056},"        # Handle closed but not merged PR\n",[1050,12154,12155,12157,12159,12161,12164,12166,12168,12170,12172,12174,12176,12178,12180,12182,12184,12186],{"class":1052,"line":4270},[1050,12156,5652],{"class":1840},[1050,12158,1229],{"class":1088},[1050,12160,5657],{"class":1218},[1050,12162,12163],{"class":1296},"\"PR closed without merge: ",[1050,12165,2462],{"class":2461},[1050,12167,11251],{"class":1264},[1050,12169,1089],{"class":1088},[1050,12171,2049],{"class":1264},[1050,12173,1229],{"class":1088},[1050,12175,1293],{"class":1292},[1050,12177,1449],{"class":1296},[1050,12179,1293],{"class":1292},[1050,12181,1274],{"class":1088},[1050,12183,2490],{"class":2461},[1050,12185,1930],{"class":1296},[1050,12187,1614],{"class":1088},[1050,12189,12190],{"class":1052,"line":4277},[1050,12191,1212],{"emptyLinePlaceholder":1211},[1050,12193,12194,12196,12198,12200,12202,12204],{"class":1052,"line":4305},[1050,12195,1219],{"class":1218},[1050,12197,1222],{"class":1218},[1050,12199,11292],{"class":1225},[1050,12201,1229],{"class":1088},[1050,12203,11236],{"class":1232},[1050,12205,1236],{"class":1088},[1050,12207,12208,12210,12213],{"class":1052,"line":4340},[1050,12209,1243],{"class":1242},[1050,12211,12212],{"class":1246},"Handle issues event asynchronously.",[1050,12214,1250],{"class":1242},[1050,12216,12217,12219,12221,12223,12225,12227,12229,12231,12233,12235],{"class":1052,"line":4345},[1050,12218,11792],{"class":1067},[1050,12220,1359],{"class":1088},[1050,12222,11052],{"class":1067},[1050,12224,1089],{"class":1088},[1050,12226,2049],{"class":1264},[1050,12228,1229],{"class":1088},[1050,12230,1293],{"class":1292},[1050,12232,11807],{"class":1296},[1050,12234,1293],{"class":1292},[1050,12236,1614],{"class":1088},[1050,12238,12239,12242,12244,12246,12248,12250,12252,12254,12257,12259,12261],{"class":1052,"line":4358},[1050,12240,12241],{"class":1067},"    issue ",[1050,12243,1359],{"class":1088},[1050,12245,11052],{"class":1067},[1050,12247,1089],{"class":1088},[1050,12249,2049],{"class":1264},[1050,12251,1229],{"class":1088},[1050,12253,1293],{"class":1292},[1050,12255,12256],{"class":1296},"issue",[1050,12258,1293],{"class":1292},[1050,12260,1202],{"class":1088},[1050,12262,11380],{"class":1088},[1050,12264,12265],{"class":1052,"line":4391},[1050,12266,1499],{"class":1067},[1050,12268,12269,12271,12273,12275,12278,12280,12282,12284,12286,12288,12290,12292,12294,12296,12298,12300,12302,12304,12306,12308],{"class":1052,"line":4396},[1050,12270,11415],{"class":1840},[1050,12272,1229],{"class":1088},[1050,12274,5657],{"class":1218},[1050,12276,12277],{"class":1296},"\"Issue ",[1050,12279,2462],{"class":2461},[1050,12281,11807],{"class":1264},[1050,12283,2490],{"class":2461},[1050,12285,11860],{"class":1296},[1050,12287,2462],{"class":2461},[1050,12289,12256],{"class":1264},[1050,12291,1089],{"class":1088},[1050,12293,2049],{"class":1264},[1050,12295,1229],{"class":1088},[1050,12297,1293],{"class":1292},[1050,12299,11875],{"class":1296},[1050,12301,1293],{"class":1292},[1050,12303,1274],{"class":1088},[1050,12305,2490],{"class":2461},[1050,12307,1930],{"class":1296},[1050,12309,1614],{"class":1088},[1050,12311,12312],{"class":1052,"line":4417},[1050,12313,1499],{"class":1067},[1050,12315,12316],{"class":1052,"line":4427},[1050,12317,12318],{"class":1056},"    # Process issue asynchronously\n",[1050,12320,12321,12323,12325,12327,12329,12331,12333],{"class":1052,"line":4436},[1050,12322,1256],{"class":1063},[1050,12324,1259],{"class":1067},[1050,12326,1089],{"class":1088},[1050,12328,1265],{"class":1264},[1050,12330,1229],{"class":1088},[1050,12332,1271],{"class":1270},[1050,12334,1614],{"class":1088},[1030,12336,12338],{"id":12337},"performance-optimization","Performance Optimization",[1035,12340,12342],{"id":12341},"connection-pooling","Connection Pooling",[1040,12344,12346],{"className":1042,"code":12345,"language":1044,"meta":1045,"style":1045},"# utils/async_db.py\nimport asyncio\nimport asyncpg\nfrom django.conf import settings\n\nclass AsyncDatabasePool:\n    \"\"\"Async database connection pool.\"\"\"\n    \n    def __init__(self):\n        self.pool = None\n    \n    async def initialize(self):\n        \"\"\"Initialize connection pool.\"\"\"\n        if not self.pool:\n            database_url = settings.DATABASES['default']['NAME']\n            self.pool = await asyncpg.create_pool(\n                database_url,\n                min_size=5,\n                max_size=20,\n                command_timeout=60\n            )\n    \n    async def close(self):\n        \"\"\"Close connection pool.\"\"\"\n        if self.pool:\n            await self.pool.close()\n    \n    async def fetch_one(self, query, *args):\n        \"\"\"Fetch single row.\"\"\"\n        async with self.pool.acquire() as connection:\n            return await connection.fetchrow(query, *args)\n    \n    async def fetch_all(self, query, *args):\n        \"\"\"Fetch all rows.\"\"\"\n        async with self.pool.acquire() as connection:\n            return await connection.fetch(query, *args)\n    \n    async def execute(self, query, *args):\n        \"\"\"Execute query.\"\"\"\n        async with self.pool.acquire() as connection:\n            return await connection.execute(query, *args)\n\n# Global pool instance\ndb_pool = AsyncDatabasePool()\n\n# Usage in views\nasync def optimized_database_view(request):\n    \"\"\"View using optimized database connections.\"\"\"\n    await db_pool.initialize()\n    \n    # Fetch data using connection pool\n    posts = await db_pool.fetch_all(\n        \"SELECT id, title, created_at FROM blog_post WHERE published = $1 ORDER BY created_at DESC LIMIT $2\",\n        True, 10\n    )\n    \n    return JsonResponse({\n        'posts': [\n            {\n                'id': post['id'],\n                'title': post['title'],\n                'created_at': post['created_at'].isoformat()\n            }\n            for post in posts\n        ]\n    })\n",[1047,12347,12348,12353,12359,12366,12380,12384,12393,12402,12406,12418,12431,12435,12450,12459,12473,12509,12532,12539,12551,12563,12573,12577,12581,12596,12605,12617,12633,12637,12663,12672,12698,12724,12728,12753,12762,12786,12811,12815,12840,12849,12873,12898,12902,12907,12918,12922,12926,12941,12950,12964,12968,12973,12990,13002,13012,13016,13020,13028,13041,13046,13068,13090,13117,13121,13133,13138],{"__ignoreMap":1045},[1050,12349,12350],{"class":1052,"line":1053},[1050,12351,12352],{"class":1056},"# utils/async_db.py\n",[1050,12354,12355,12357],{"class":1052,"line":1060},[1050,12356,1064],{"class":1063},[1050,12358,1068],{"class":1067},[1050,12360,12361,12363],{"class":1052,"line":1071},[1050,12362,1064],{"class":1063},[1050,12364,12365],{"class":1067}," asyncpg\n",[1050,12367,12368,12370,12372,12374,12376,12378],{"class":1052,"line":1079},[1050,12369,1082],{"class":1063},[1050,12371,1085],{"class":1067},[1050,12373,1089],{"class":1088},[1050,12375,8461],{"class":1067},[1050,12377,1064],{"class":1063},[1050,12379,8466],{"class":1067},[1050,12381,12382],{"class":1052,"line":1100},[1050,12383,1212],{"emptyLinePlaceholder":1211},[1050,12385,12386,12388,12391],{"class":1052,"line":1117},[1050,12387,2600],{"class":1218},[1050,12389,12390],{"class":2603}," AsyncDatabasePool",[1050,12392,1567],{"class":1088},[1050,12394,12395,12397,12400],{"class":1052,"line":1143},[1050,12396,1243],{"class":1242},[1050,12398,12399],{"class":1246},"Async database connection pool.",[1050,12401,1250],{"class":1242},[1050,12403,12404],{"class":1052,"line":1168},[1050,12405,1499],{"class":1067},[1050,12407,12408,12410,12412,12414,12416],{"class":1052,"line":1186},[1050,12409,7103],{"class":1218},[1050,12411,8499],{"class":1840},[1050,12413,1229],{"class":1088},[1050,12415,2640],{"class":2639},[1050,12417,1236],{"class":1088},[1050,12419,12420,12422,12424,12427,12429],{"class":1052,"line":1208},[1050,12421,8533],{"class":2687},[1050,12423,1089],{"class":1088},[1050,12425,12426],{"class":1384},"pool",[1050,12428,5127],{"class":1088},[1050,12430,5635],{"class":1401},[1050,12432,12433],{"class":1052,"line":1215},[1050,12434,1499],{"class":1067},[1050,12436,12437,12439,12441,12444,12446,12448],{"class":1052,"line":1239},[1050,12438,1368],{"class":1218},[1050,12440,1222],{"class":1218},[1050,12442,12443],{"class":1225}," initialize",[1050,12445,1229],{"class":1088},[1050,12447,2640],{"class":2639},[1050,12449,1236],{"class":1088},[1050,12451,12452,12454,12457],{"class":1052,"line":1253},[1050,12453,2667],{"class":1242},[1050,12455,12456],{"class":1246},"Initialize connection pool.",[1050,12458,1250],{"class":1242},[1050,12460,12461,12463,12465,12467,12469,12471],{"class":1052,"line":1280},[1050,12462,2722],{"class":1063},[1050,12464,6555],{"class":1991},[1050,12466,2706],{"class":2687},[1050,12468,1089],{"class":1088},[1050,12470,12426],{"class":1384},[1050,12472,1567],{"class":1088},[1050,12474,12475,12478,12480,12483,12485,12488,12490,12492,12495,12497,12500,12502,12505,12507],{"class":1052,"line":1316},[1050,12476,12477],{"class":1067},"            database_url ",[1050,12479,1359],{"class":1088},[1050,12481,12482],{"class":1067}," settings",[1050,12484,1089],{"class":1088},[1050,12486,12487],{"class":2877},"DATABASES",[1050,12489,4856],{"class":1088},[1050,12491,1293],{"class":1292},[1050,12493,12494],{"class":1296},"default",[1050,12496,1293],{"class":1292},[1050,12498,12499],{"class":1088},"][",[1050,12501,1293],{"class":1292},[1050,12503,12504],{"class":1296},"NAME",[1050,12506,1293],{"class":1292},[1050,12508,3032],{"class":1088},[1050,12510,12511,12514,12516,12518,12520,12522,12525,12527,12530],{"class":1052,"line":1321},[1050,12512,12513],{"class":2687},"            self",[1050,12515,1089],{"class":1088},[1050,12517,12426],{"class":1384},[1050,12519,5127],{"class":1088},[1050,12521,1584],{"class":1063},[1050,12523,12524],{"class":1067}," asyncpg",[1050,12526,1089],{"class":1088},[1050,12528,12529],{"class":1264},"create_pool",[1050,12531,4843],{"class":1088},[1050,12533,12534,12537],{"class":1052,"line":1337},[1050,12535,12536],{"class":1264},"                database_url",[1050,12538,1441],{"class":1088},[1050,12540,12541,12544,12546,12549],{"class":1052,"line":1347},[1050,12542,12543],{"class":1395},"                min_size",[1050,12545,1359],{"class":1088},[1050,12547,12548],{"class":1270},"5",[1050,12550,1441],{"class":1088},[1050,12552,12553,12556,12558,12561],{"class":1052,"line":1353},[1050,12554,12555],{"class":1395},"                max_size",[1050,12557,1359],{"class":1088},[1050,12559,12560],{"class":1270},"20",[1050,12562,1441],{"class":1088},[1050,12564,12565,12568,12570],{"class":1052,"line":1365},[1050,12566,12567],{"class":1395},"                command_timeout",[1050,12569,1359],{"class":1088},[1050,12571,12572],{"class":1270},"60\n",[1050,12574,12575],{"class":1052,"line":1407},[1050,12576,4920],{"class":1088},[1050,12578,12579],{"class":1052,"line":1421},[1050,12580,1499],{"class":1067},[1050,12582,12583,12585,12587,12590,12592,12594],{"class":1052,"line":1444},[1050,12584,1368],{"class":1218},[1050,12586,1222],{"class":1218},[1050,12588,12589],{"class":1225}," close",[1050,12591,1229],{"class":1088},[1050,12593,2640],{"class":2639},[1050,12595,1236],{"class":1088},[1050,12597,12598,12600,12603],{"class":1052,"line":1464},[1050,12599,2667],{"class":1242},[1050,12601,12602],{"class":1246},"Close connection pool.",[1050,12604,1250],{"class":1242},[1050,12606,12607,12609,12611,12613,12615],{"class":1052,"line":1490},[1050,12608,2722],{"class":1063},[1050,12610,2706],{"class":2687},[1050,12612,1089],{"class":1088},[1050,12614,12426],{"class":1384},[1050,12616,1567],{"class":1088},[1050,12618,12619,12621,12623,12625,12627,12629,12631],{"class":1052,"line":1496},[1050,12620,4280],{"class":1063},[1050,12622,2706],{"class":2687},[1050,12624,1089],{"class":1088},[1050,12626,12426],{"class":1384},[1050,12628,1089],{"class":1088},[1050,12630,8767],{"class":1264},[1050,12632,1487],{"class":1088},[1050,12634,12635],{"class":1052,"line":1502},[1050,12636,1499],{"class":1067},[1050,12638,12639,12641,12643,12646,12648,12650,12652,12655,12657,12659,12661],{"class":1052,"line":1525},[1050,12640,1368],{"class":1218},[1050,12642,1222],{"class":1218},[1050,12644,12645],{"class":1225}," fetch_one",[1050,12647,1229],{"class":1088},[1050,12649,2640],{"class":2639},[1050,12651,1202],{"class":1088},[1050,12653,12654],{"class":1232}," query",[1050,12656,1202],{"class":1088},[1050,12658,2649],{"class":1991},[1050,12660,2652],{"class":1232},[1050,12662,1236],{"class":1088},[1050,12664,12665,12667,12670],{"class":1052,"line":1530},[1050,12666,2667],{"class":1242},[1050,12668,12669],{"class":1246},"Fetch single row.",[1050,12671,1250],{"class":1242},[1050,12673,12674,12676,12678,12680,12682,12684,12686,12689,12691,12693,12696],{"class":1052,"line":1551},[1050,12675,2012],{"class":1063},[1050,12677,2015],{"class":1063},[1050,12679,2706],{"class":2687},[1050,12681,1089],{"class":1088},[1050,12683,12426],{"class":1384},[1050,12685,1089],{"class":1088},[1050,12687,12688],{"class":1264},"acquire",[1050,12690,2026],{"class":1088},[1050,12692,2029],{"class":1063},[1050,12694,12695],{"class":1067}," connection",[1050,12697,1567],{"class":1088},[1050,12699,12700,12702,12704,12706,12708,12711,12713,12716,12718,12720,12722],{"class":1052,"line":1561},[1050,12701,2303],{"class":1063},[1050,12703,1584],{"class":1063},[1050,12705,12695],{"class":1067},[1050,12707,1089],{"class":1088},[1050,12709,12710],{"class":1264},"fetchrow",[1050,12712,1229],{"class":1088},[1050,12714,12715],{"class":1264},"query",[1050,12717,1202],{"class":1088},[1050,12719,2649],{"class":1991},[1050,12721,2652],{"class":1264},[1050,12723,1614],{"class":1088},[1050,12725,12726],{"class":1052,"line":1570},[1050,12727,1499],{"class":1067},[1050,12729,12730,12732,12734,12737,12739,12741,12743,12745,12747,12749,12751],{"class":1052,"line":1576},[1050,12731,1368],{"class":1218},[1050,12733,1222],{"class":1218},[1050,12735,12736],{"class":1225}," fetch_all",[1050,12738,1229],{"class":1088},[1050,12740,2640],{"class":2639},[1050,12742,1202],{"class":1088},[1050,12744,12654],{"class":1232},[1050,12746,1202],{"class":1088},[1050,12748,2649],{"class":1991},[1050,12750,2652],{"class":1232},[1050,12752,1236],{"class":1088},[1050,12754,12755,12757,12760],{"class":1052,"line":1617},[1050,12756,2667],{"class":1242},[1050,12758,12759],{"class":1246},"Fetch all rows.",[1050,12761,1250],{"class":1242},[1050,12763,12764,12766,12768,12770,12772,12774,12776,12778,12780,12782,12784],{"class":1052,"line":1623},[1050,12765,2012],{"class":1063},[1050,12767,2015],{"class":1063},[1050,12769,2706],{"class":2687},[1050,12771,1089],{"class":1088},[1050,12773,12426],{"class":1384},[1050,12775,1089],{"class":1088},[1050,12777,12688],{"class":1264},[1050,12779,2026],{"class":1088},[1050,12781,2029],{"class":1063},[1050,12783,12695],{"class":1067},[1050,12785,1567],{"class":1088},[1050,12787,12788,12790,12792,12794,12796,12799,12801,12803,12805,12807,12809],{"class":1052,"line":1629},[1050,12789,2303],{"class":1063},[1050,12791,1584],{"class":1063},[1050,12793,12695],{"class":1067},[1050,12795,1089],{"class":1088},[1050,12797,12798],{"class":1264},"fetch",[1050,12800,1229],{"class":1088},[1050,12802,12715],{"class":1264},[1050,12804,1202],{"class":1088},[1050,12806,2649],{"class":1991},[1050,12808,2652],{"class":1264},[1050,12810,1614],{"class":1088},[1050,12812,12813],{"class":1052,"line":1657},[1050,12814,1499],{"class":1067},[1050,12816,12817,12819,12821,12824,12826,12828,12830,12832,12834,12836,12838],{"class":1052,"line":1695},[1050,12818,1368],{"class":1218},[1050,12820,1222],{"class":1218},[1050,12822,12823],{"class":1225}," execute",[1050,12825,1229],{"class":1088},[1050,12827,2640],{"class":2639},[1050,12829,1202],{"class":1088},[1050,12831,12654],{"class":1232},[1050,12833,1202],{"class":1088},[1050,12835,2649],{"class":1991},[1050,12837,2652],{"class":1232},[1050,12839,1236],{"class":1088},[1050,12841,12842,12844,12847],{"class":1052,"line":1700},[1050,12843,2667],{"class":1242},[1050,12845,12846],{"class":1246},"Execute query.",[1050,12848,1250],{"class":1242},[1050,12850,12851,12853,12855,12857,12859,12861,12863,12865,12867,12869,12871],{"class":1052,"line":1734},[1050,12852,2012],{"class":1063},[1050,12854,2015],{"class":1063},[1050,12856,2706],{"class":2687},[1050,12858,1089],{"class":1088},[1050,12860,12426],{"class":1384},[1050,12862,1089],{"class":1088},[1050,12864,12688],{"class":1264},[1050,12866,2026],{"class":1088},[1050,12868,2029],{"class":1063},[1050,12870,12695],{"class":1067},[1050,12872,1567],{"class":1088},[1050,12874,12875,12877,12879,12881,12883,12886,12888,12890,12892,12894,12896],{"class":1052,"line":1739},[1050,12876,2303],{"class":1063},[1050,12878,1584],{"class":1063},[1050,12880,12695],{"class":1067},[1050,12882,1089],{"class":1088},[1050,12884,12885],{"class":1264},"execute",[1050,12887,1229],{"class":1088},[1050,12889,12715],{"class":1264},[1050,12891,1202],{"class":1088},[1050,12893,2649],{"class":1991},[1050,12895,2652],{"class":1264},[1050,12897,1614],{"class":1088},[1050,12899,12900],{"class":1052,"line":1749},[1050,12901,1212],{"emptyLinePlaceholder":1211},[1050,12903,12904],{"class":1052,"line":1768},[1050,12905,12906],{"class":1056},"# Global pool instance\n",[1050,12908,12909,12912,12914,12916],{"class":1052,"line":1787},[1050,12910,12911],{"class":1067},"db_pool ",[1050,12913,1359],{"class":1088},[1050,12915,12390],{"class":1264},[1050,12917,1487],{"class":1088},[1050,12919,12920],{"class":1052,"line":1807},[1050,12921,1212],{"emptyLinePlaceholder":1211},[1050,12923,12924],{"class":1052,"line":1828},[1050,12925,10003],{"class":1056},[1050,12927,12928,12930,12932,12935,12937,12939],{"class":1052,"line":1850},[1050,12929,1219],{"class":1218},[1050,12931,1222],{"class":1218},[1050,12933,12934],{"class":1225}," optimized_database_view",[1050,12936,1229],{"class":1088},[1050,12938,1233],{"class":1232},[1050,12940,1236],{"class":1088},[1050,12942,12943,12945,12948],{"class":1052,"line":1855},[1050,12944,1243],{"class":1242},[1050,12946,12947],{"class":1246},"View using optimized database connections.",[1050,12949,1250],{"class":1242},[1050,12951,12952,12954,12957,12959,12962],{"class":1052,"line":1860},[1050,12953,1256],{"class":1063},[1050,12955,12956],{"class":1067}," db_pool",[1050,12958,1089],{"class":1088},[1050,12960,12961],{"class":1264},"initialize",[1050,12963,1487],{"class":1088},[1050,12965,12966],{"class":1052,"line":1875},[1050,12967,1499],{"class":1067},[1050,12969,12970],{"class":1052,"line":1913},[1050,12971,12972],{"class":1056},"    # Fetch data using connection pool\n",[1050,12974,12975,12977,12979,12981,12983,12985,12988],{"class":1052,"line":1918},[1050,12976,1356],{"class":1067},[1050,12978,1359],{"class":1088},[1050,12980,1584],{"class":1063},[1050,12982,12956],{"class":1067},[1050,12984,1089],{"class":1088},[1050,12986,12987],{"class":1264},"fetch_all",[1050,12989,4843],{"class":1088},[1050,12991,12992,12995,12998,13000],{"class":1052,"line":1951},[1050,12993,12994],{"class":1292},"        \"",[1050,12996,12997],{"class":1296},"SELECT id, title, created_at FROM blog_post WHERE published = $1 ORDER BY created_at DESC LIMIT $2",[1050,12999,1930],{"class":1292},[1050,13001,1441],{"class":1088},[1050,13003,13004,13007,13009],{"class":1052,"line":1967},[1050,13005,13006],{"class":1401},"        True",[1050,13008,1202],{"class":1088},[1050,13010,13011],{"class":1270}," 10\n",[1050,13013,13014],{"class":1052,"line":1977},[1050,13015,7426],{"class":1088},[1050,13017,13018],{"class":1052,"line":2003},[1050,13019,1499],{"class":1067},[1050,13021,13022,13024,13026],{"class":1052,"line":2009},[1050,13023,1283],{"class":1063},[1050,13025,1286],{"class":1264},[1050,13027,1418],{"class":1088},[1050,13029,13030,13032,13034,13036,13038],{"class":1052,"line":2037},[1050,13031,7448],{"class":1292},[1050,13033,1513],{"class":1296},[1050,13035,1293],{"class":1292},[1050,13037,1302],{"class":1088},[1050,13039,13040],{"class":1088}," [\n",[1050,13042,13043],{"class":1052,"line":2070},[1050,13044,13045],{"class":1088},"            {\n",[1050,13047,13048,13050,13052,13054,13056,13058,13060,13062,13064,13066],{"class":1052,"line":2090},[1050,13049,3067],{"class":1292},[1050,13051,1427],{"class":1296},[1050,13053,1293],{"class":1292},[1050,13055,1302],{"class":1088},[1050,13057,1434],{"class":1264},[1050,13059,4856],{"class":1088},[1050,13061,1293],{"class":1292},[1050,13063,1427],{"class":1296},[1050,13065,1293],{"class":1292},[1050,13067,4865],{"class":1088},[1050,13069,13070,13072,13074,13076,13078,13080,13082,13084,13086,13088],{"class":1052,"line":2109},[1050,13071,3067],{"class":1292},[1050,13073,1449],{"class":1296},[1050,13075,1293],{"class":1292},[1050,13077,1302],{"class":1088},[1050,13079,1434],{"class":1264},[1050,13081,4856],{"class":1088},[1050,13083,1293],{"class":1292},[1050,13085,1449],{"class":1296},[1050,13087,1293],{"class":1292},[1050,13089,4865],{"class":1088},[1050,13091,13092,13094,13096,13098,13100,13102,13104,13106,13108,13110,13113,13115],{"class":1052,"line":2124},[1050,13093,3067],{"class":1292},[1050,13095,1469],{"class":1296},[1050,13097,1293],{"class":1292},[1050,13099,1302],{"class":1088},[1050,13101,1434],{"class":1264},[1050,13103,4856],{"class":1088},[1050,13105,1293],{"class":1292},[1050,13107,1469],{"class":1296},[1050,13109,1293],{"class":1292},[1050,13111,13112],{"class":1088},"].",[1050,13114,1484],{"class":1264},[1050,13116,1487],{"class":1088},[1050,13118,13119],{"class":1052,"line":2132},[1050,13120,3304],{"class":1088},[1050,13122,13123,13126,13128,13130],{"class":1052,"line":2167},[1050,13124,13125],{"class":1063},"            for",[1050,13127,1374],{"class":1264},[1050,13129,1377],{"class":1063},[1050,13131,13132],{"class":1264}," posts\n",[1050,13134,13135],{"class":1052,"line":2172},[1050,13136,13137],{"class":1088},"        ]\n",[1050,13139,13140],{"class":1052,"line":2194},[1050,13141,7699],{"class":1088},[1035,13143,13145],{"id":13144},"caching-with-async-views","Caching with Async Views",[1040,13147,13149],{"className":1042,"code":13148,"language":1044,"meta":1045,"style":1045},"# views/cached.py\nimport asyncio\nimport json\nfrom django.core.cache import cache\nfrom django.http import JsonResponse\nfrom asgiref.sync import sync_to_async\n\n# Async cache operations\nasync_cache_get = sync_to_async(cache.get)\nasync_cache_set = sync_to_async(cache.set)\nasync_cache_delete = sync_to_async(cache.delete)\n\nasync def cached_async_view(request):\n    \"\"\"Async view with caching.\"\"\"\n    cache_key = f\"async_view_data_{request.GET.get('category', 'all')}\"\n    \n    # Try to get from cache\n    cached_data = await async_cache_get(cache_key)\n    if cached_data:\n        return JsonResponse(cached_data)\n    \n    # Generate data asynchronously\n    data = await generate_expensive_data(request.GET.get('category'))\n    \n    # Cache the result\n    await async_cache_set(cache_key, data, 300)  # 5 minutes\n    \n    return JsonResponse(data)\n\nasync def generate_expensive_data(category=None):\n    \"\"\"Generate expensive data asynchronously.\"\"\"\n    # Simulate expensive operations\n    await asyncio.sleep(1)\n    \n    return {\n        'category': category or 'all',\n        'data': [f'item_{i}' for i in range(100)],\n        'generated_at': asyncio.get_event_loop().time()\n    }\n\nasync def cache_warming_view(request):\n    \"\"\"Warm cache asynchronously.\"\"\"\n    categories = ['tech', 'science', 'business', 'sports']\n    \n    # Warm cache for all categories concurrently\n    tasks = []\n    for category in categories:\n        cache_key = f\"async_view_data_{category}\"\n        task = warm_cache_for_category(cache_key, category)\n        tasks.append(task)\n    \n    results = await asyncio.gather(*tasks, return_exceptions=True)\n    \n    successful = sum(1 for r in results if not isinstance(r, Exception))\n    failed = len(results) - successful\n    \n    return JsonResponse({\n        'message': 'Cache warming completed',\n        'successful': successful,\n        'failed': failed\n    })\n\nasync def warm_cache_for_category(cache_key, category):\n    \"\"\"Warm cache for specific category.\"\"\"\n    data = await generate_expensive_data(category)\n    await async_cache_set(cache_key, data, 300)\n    return f\"Warmed cache for {category}\"\n",[1047,13150,13151,13156,13162,13168,13189,13203,13217,13221,13226,13246,13266,13285,13289,13304,13313,13360,13364,13369,13388,13397,13410,13414,13419,13453,13457,13462,13487,13491,13503,13507,13526,13535,13540,13557,13561,13567,13590,13633,13659,13664,13668,13683,13692,13737,13741,13746,13754,13768,13787,13808,13823,13827,13858,13862,13904,13925,13929,13937,13956,13972,13986,13990,13994,14012,14021,14037,14057],{"__ignoreMap":1045},[1050,13152,13153],{"class":1052,"line":1053},[1050,13154,13155],{"class":1056},"# views/cached.py\n",[1050,13157,13158,13160],{"class":1052,"line":1060},[1050,13159,1064],{"class":1063},[1050,13161,1068],{"class":1067},[1050,13163,13164,13166],{"class":1052,"line":1071},[1050,13165,1064],{"class":1063},[1050,13167,2206],{"class":1067},[1050,13169,13170,13172,13174,13176,13179,13181,13184,13186],{"class":1052,"line":1079},[1050,13171,1082],{"class":1063},[1050,13173,1085],{"class":1067},[1050,13175,1089],{"class":1088},[1050,13177,13178],{"class":1067},"core",[1050,13180,1089],{"class":1088},[1050,13182,13183],{"class":1067},"cache ",[1050,13185,1064],{"class":1063},[1050,13187,13188],{"class":1067}," cache\n",[1050,13190,13191,13193,13195,13197,13199,13201],{"class":1052,"line":1100},[1050,13192,1082],{"class":1063},[1050,13194,1085],{"class":1067},[1050,13196,1089],{"class":1088},[1050,13198,1092],{"class":1067},[1050,13200,1064],{"class":1063},[1050,13202,1097],{"class":1067},[1050,13204,13205,13207,13209,13211,13213,13215],{"class":1052,"line":1117},[1050,13206,1082],{"class":1063},[1050,13208,1173],{"class":1067},[1050,13210,1089],{"class":1088},[1050,13212,1178],{"class":1067},[1050,13214,1064],{"class":1063},[1050,13216,1183],{"class":1067},[1050,13218,13219],{"class":1052,"line":1143},[1050,13220,1212],{"emptyLinePlaceholder":1211},[1050,13222,13223],{"class":1052,"line":1168},[1050,13224,13225],{"class":1056},"# Async cache operations\n",[1050,13227,13228,13231,13233,13235,13237,13240,13242,13244],{"class":1052,"line":1186},[1050,13229,13230],{"class":1067},"async_cache_get ",[1050,13232,1359],{"class":1088},[1050,13234,1637],{"class":1264},[1050,13236,1229],{"class":1088},[1050,13238,13239],{"class":1264},"cache",[1050,13241,1089],{"class":1088},[1050,13243,2049],{"class":1384},[1050,13245,1614],{"class":1088},[1050,13247,13248,13251,13253,13255,13257,13259,13261,13264],{"class":1052,"line":1208},[1050,13249,13250],{"class":1067},"async_cache_set ",[1050,13252,1359],{"class":1088},[1050,13254,1637],{"class":1264},[1050,13256,1229],{"class":1088},[1050,13258,13239],{"class":1264},[1050,13260,1089],{"class":1088},[1050,13262,13263],{"class":1384},"set",[1050,13265,1614],{"class":1088},[1050,13267,13268,13271,13273,13275,13277,13279,13281,13283],{"class":1052,"line":1215},[1050,13269,13270],{"class":1067},"async_cache_delete ",[1050,13272,1359],{"class":1088},[1050,13274,1637],{"class":1264},[1050,13276,1229],{"class":1088},[1050,13278,13239],{"class":1264},[1050,13280,1089],{"class":1088},[1050,13282,5439],{"class":1384},[1050,13284,1614],{"class":1088},[1050,13286,13287],{"class":1052,"line":1239},[1050,13288,1212],{"emptyLinePlaceholder":1211},[1050,13290,13291,13293,13295,13298,13300,13302],{"class":1052,"line":1253},[1050,13292,1219],{"class":1218},[1050,13294,1222],{"class":1218},[1050,13296,13297],{"class":1225}," cached_async_view",[1050,13299,1229],{"class":1088},[1050,13301,1233],{"class":1232},[1050,13303,1236],{"class":1088},[1050,13305,13306,13308,13311],{"class":1052,"line":1280},[1050,13307,1243],{"class":1242},[1050,13309,13310],{"class":1246},"Async view with caching.",[1050,13312,1250],{"class":1242},[1050,13314,13315,13318,13320,13322,13325,13327,13329,13331,13333,13335,13337,13339,13341,13344,13346,13348,13350,13352,13354,13356,13358],{"class":1052,"line":1316},[1050,13316,13317],{"class":1067},"    cache_key ",[1050,13319,1359],{"class":1088},[1050,13321,2455],{"class":1218},[1050,13323,13324],{"class":1296},"\"async_view_data_",[1050,13326,2462],{"class":2461},[1050,13328,1233],{"class":1067},[1050,13330,1089],{"class":1088},[1050,13332,1933],{"class":2877},[1050,13334,1089],{"class":1088},[1050,13336,2049],{"class":1264},[1050,13338,1229],{"class":1088},[1050,13340,1293],{"class":1292},[1050,13342,13343],{"class":1296},"category",[1050,13345,1293],{"class":1292},[1050,13347,1202],{"class":1088},[1050,13349,1305],{"class":1292},[1050,13351,1689],{"class":1296},[1050,13353,1293],{"class":1292},[1050,13355,1274],{"class":1088},[1050,13357,2490],{"class":2461},[1050,13359,2493],{"class":1296},[1050,13361,13362],{"class":1052,"line":1321},[1050,13363,1499],{"class":1067},[1050,13365,13366],{"class":1052,"line":1337},[1050,13367,13368],{"class":1056},"    # Try to get from cache\n",[1050,13370,13371,13374,13376,13378,13381,13383,13386],{"class":1052,"line":1347},[1050,13372,13373],{"class":1067},"    cached_data ",[1050,13375,1359],{"class":1088},[1050,13377,1584],{"class":1063},[1050,13379,13380],{"class":1264}," async_cache_get",[1050,13382,1229],{"class":1088},[1050,13384,13385],{"class":1264},"cache_key",[1050,13387,1614],{"class":1088},[1050,13389,13390,13392,13395],{"class":1052,"line":1353},[1050,13391,1980],{"class":1063},[1050,13393,13394],{"class":1067}," cached_data",[1050,13396,1567],{"class":1088},[1050,13398,13399,13401,13403,13405,13408],{"class":1052,"line":1365},[1050,13400,1742],{"class":1063},[1050,13402,1286],{"class":1264},[1050,13404,1229],{"class":1088},[1050,13406,13407],{"class":1264},"cached_data",[1050,13409,1614],{"class":1088},[1050,13411,13412],{"class":1052,"line":1407},[1050,13413,1499],{"class":1067},[1050,13415,13416],{"class":1052,"line":1421},[1050,13417,13418],{"class":1056},"    # Generate data asynchronously\n",[1050,13420,13421,13424,13426,13428,13431,13433,13435,13437,13439,13441,13443,13445,13447,13449,13451],{"class":1052,"line":1444},[1050,13422,13423],{"class":1067},"    data ",[1050,13425,1359],{"class":1088},[1050,13427,1584],{"class":1063},[1050,13429,13430],{"class":1264}," generate_expensive_data",[1050,13432,1229],{"class":1088},[1050,13434,1233],{"class":1264},[1050,13436,1089],{"class":1088},[1050,13438,1933],{"class":2877},[1050,13440,1089],{"class":1088},[1050,13442,2049],{"class":1264},[1050,13444,1229],{"class":1088},[1050,13446,1293],{"class":1292},[1050,13448,13343],{"class":1296},[1050,13450,1293],{"class":1292},[1050,13452,2898],{"class":1088},[1050,13454,13455],{"class":1052,"line":1464},[1050,13456,1499],{"class":1067},[1050,13458,13459],{"class":1052,"line":1490},[1050,13460,13461],{"class":1056},"    # Cache the result\n",[1050,13463,13464,13466,13469,13471,13473,13475,13477,13479,13482,13484],{"class":1052,"line":1496},[1050,13465,1256],{"class":1063},[1050,13467,13468],{"class":1264}," async_cache_set",[1050,13470,1229],{"class":1088},[1050,13472,13385],{"class":1264},[1050,13474,1202],{"class":1088},[1050,13476,4412],{"class":1264},[1050,13478,1202],{"class":1088},[1050,13480,13481],{"class":1270}," 300",[1050,13483,1274],{"class":1088},[1050,13485,13486],{"class":1056},"  # 5 minutes\n",[1050,13488,13489],{"class":1052,"line":1502},[1050,13490,1499],{"class":1067},[1050,13492,13493,13495,13497,13499,13501],{"class":1052,"line":1525},[1050,13494,1283],{"class":1063},[1050,13496,1286],{"class":1264},[1050,13498,1229],{"class":1088},[1050,13500,2119],{"class":1264},[1050,13502,1614],{"class":1088},[1050,13504,13505],{"class":1052,"line":1530},[1050,13506,1212],{"emptyLinePlaceholder":1211},[1050,13508,13509,13511,13513,13515,13517,13519,13521,13524],{"class":1052,"line":1551},[1050,13510,1219],{"class":1218},[1050,13512,1222],{"class":1218},[1050,13514,13430],{"class":1225},[1050,13516,1229],{"class":1088},[1050,13518,13343],{"class":1232},[1050,13520,1359],{"class":1991},[1050,13522,13523],{"class":1401},"None",[1050,13525,1236],{"class":1088},[1050,13527,13528,13530,13533],{"class":1052,"line":1561},[1050,13529,1243],{"class":1242},[1050,13531,13532],{"class":1246},"Generate expensive data asynchronously.",[1050,13534,1250],{"class":1242},[1050,13536,13537],{"class":1052,"line":1570},[1050,13538,13539],{"class":1056},"    # Simulate expensive operations\n",[1050,13541,13542,13544,13546,13548,13550,13552,13555],{"class":1052,"line":1576},[1050,13543,1256],{"class":1063},[1050,13545,1259],{"class":1067},[1050,13547,1089],{"class":1088},[1050,13549,1265],{"class":1264},[1050,13551,1229],{"class":1088},[1050,13553,13554],{"class":1270},"1",[1050,13556,1614],{"class":1088},[1050,13558,13559],{"class":1052,"line":1617},[1050,13560,1499],{"class":1067},[1050,13562,13563,13565],{"class":1052,"line":1623},[1050,13564,1283],{"class":1063},[1050,13566,3229],{"class":1088},[1050,13568,13569,13571,13573,13575,13577,13580,13582,13584,13586,13588],{"class":1052,"line":1629},[1050,13570,7448],{"class":1292},[1050,13572,13343],{"class":1296},[1050,13574,1293],{"class":1292},[1050,13576,1302],{"class":1088},[1050,13578,13579],{"class":1067}," category ",[1050,13581,6561],{"class":1991},[1050,13583,1305],{"class":1292},[1050,13585,1689],{"class":1296},[1050,13587,1293],{"class":1292},[1050,13589,1441],{"class":1088},[1050,13591,13592,13594,13596,13598,13600,13602,13604,13607,13609,13611,13613,13615,13617,13620,13622,13625,13627,13630],{"class":1052,"line":1657},[1050,13593,7448],{"class":1292},[1050,13595,2119],{"class":1296},[1050,13597,1293],{"class":1292},[1050,13599,1302],{"class":1088},[1050,13601,6569],{"class":1088},[1050,13603,5657],{"class":1218},[1050,13605,13606],{"class":1296},"'item_",[1050,13608,2462],{"class":2461},[1050,13610,6843],{"class":1067},[1050,13612,2490],{"class":2461},[1050,13614,1293],{"class":1296},[1050,13616,1371],{"class":1063},[1050,13618,13619],{"class":1067}," i ",[1050,13621,1377],{"class":1063},[1050,13623,13624],{"class":1840}," range",[1050,13626,1229],{"class":1088},[1050,13628,13629],{"class":1270},"100",[1050,13631,13632],{"class":1088},")],\n",[1050,13634,13635,13637,13640,13642,13644,13646,13648,13651,13654,13657],{"class":1052,"line":1695},[1050,13636,7448],{"class":1292},[1050,13638,13639],{"class":1296},"generated_at",[1050,13641,1293],{"class":1292},[1050,13643,1302],{"class":1088},[1050,13645,1259],{"class":1067},[1050,13647,1089],{"class":1088},[1050,13649,13650],{"class":1264},"get_event_loop",[1050,13652,13653],{"class":1088},"().",[1050,13655,13656],{"class":1264},"time",[1050,13658,1487],{"class":1088},[1050,13660,13661],{"class":1052,"line":1700},[1050,13662,13663],{"class":1088},"    }\n",[1050,13665,13666],{"class":1052,"line":1734},[1050,13667,1212],{"emptyLinePlaceholder":1211},[1050,13669,13670,13672,13674,13677,13679,13681],{"class":1052,"line":1739},[1050,13671,1219],{"class":1218},[1050,13673,1222],{"class":1218},[1050,13675,13676],{"class":1225}," cache_warming_view",[1050,13678,1229],{"class":1088},[1050,13680,1233],{"class":1232},[1050,13682,1236],{"class":1088},[1050,13684,13685,13687,13690],{"class":1052,"line":1749},[1050,13686,1243],{"class":1242},[1050,13688,13689],{"class":1246},"Warm cache asynchronously.",[1050,13691,1250],{"class":1242},[1050,13693,13694,13697,13699,13701,13703,13706,13708,13710,13712,13715,13717,13719,13721,13724,13726,13728,13730,13733,13735],{"class":1052,"line":1768},[1050,13695,13696],{"class":1067},"    categories ",[1050,13698,1359],{"class":1088},[1050,13700,6569],{"class":1088},[1050,13702,1293],{"class":1292},[1050,13704,13705],{"class":1296},"tech",[1050,13707,1293],{"class":1292},[1050,13709,1202],{"class":1088},[1050,13711,1305],{"class":1292},[1050,13713,13714],{"class":1296},"science",[1050,13716,1293],{"class":1292},[1050,13718,1202],{"class":1088},[1050,13720,1305],{"class":1292},[1050,13722,13723],{"class":1296},"business",[1050,13725,1293],{"class":1292},[1050,13727,1202],{"class":1088},[1050,13729,1305],{"class":1292},[1050,13731,13732],{"class":1296},"sports",[1050,13734,1293],{"class":1292},[1050,13736,3032],{"class":1088},[1050,13738,13739],{"class":1052,"line":1787},[1050,13740,1499],{"class":1067},[1050,13742,13743],{"class":1052,"line":1807},[1050,13744,13745],{"class":1056},"    # Warm cache for all categories concurrently\n",[1050,13747,13748,13750,13752],{"class":1052,"line":1828},[1050,13749,11477],{"class":1067},[1050,13751,1359],{"class":1088},[1050,13753,1362],{"class":1088},[1050,13755,13756,13759,13761,13763,13766],{"class":1052,"line":1850},[1050,13757,13758],{"class":1063},"    for",[1050,13760,13579],{"class":1067},[1050,13762,1377],{"class":1063},[1050,13764,13765],{"class":1067}," categories",[1050,13767,1567],{"class":1088},[1050,13769,13770,13773,13775,13777,13779,13781,13783,13785],{"class":1052,"line":1855},[1050,13771,13772],{"class":1067},"        cache_key ",[1050,13774,1359],{"class":1088},[1050,13776,2455],{"class":1218},[1050,13778,13324],{"class":1296},[1050,13780,2462],{"class":2461},[1050,13782,13343],{"class":1067},[1050,13784,2490],{"class":2461},[1050,13786,2493],{"class":1296},[1050,13788,13789,13792,13794,13797,13799,13801,13803,13806],{"class":1052,"line":1860},[1050,13790,13791],{"class":1067},"        task ",[1050,13793,1359],{"class":1088},[1050,13795,13796],{"class":1264}," warm_cache_for_category",[1050,13798,1229],{"class":1088},[1050,13800,13385],{"class":1264},[1050,13802,1202],{"class":1088},[1050,13804,13805],{"class":1264}," category",[1050,13807,1614],{"class":1088},[1050,13809,13810,13813,13815,13817,13819,13821],{"class":1052,"line":1875},[1050,13811,13812],{"class":1067},"        tasks",[1050,13814,1089],{"class":1088},[1050,13816,1415],{"class":1264},[1050,13818,1229],{"class":1088},[1050,13820,6712],{"class":1264},[1050,13822,1614],{"class":1088},[1050,13824,13825],{"class":1052,"line":1913},[1050,13826,1499],{"class":1067},[1050,13828,13829,13832,13834,13836,13838,13840,13842,13844,13846,13848,13850,13852,13854,13856],{"class":1052,"line":1918},[1050,13830,13831],{"class":1067},"    results ",[1050,13833,1359],{"class":1088},[1050,13835,1584],{"class":1063},[1050,13837,1259],{"class":1067},[1050,13839,1089],{"class":1088},[1050,13841,1719],{"class":1264},[1050,13843,1229],{"class":1088},[1050,13845,4292],{"class":1991},[1050,13847,6745],{"class":1264},[1050,13849,1202],{"class":1088},[1050,13851,6750],{"class":1395},[1050,13853,1359],{"class":1088},[1050,13855,1402],{"class":1401},[1050,13857,1614],{"class":1088},[1050,13859,13860],{"class":1052,"line":1951},[1050,13861,1499],{"class":1067},[1050,13863,13864,13867,13869,13872,13874,13876,13878,13881,13883,13886,13889,13891,13893,13895,13898,13900,13902],{"class":1052,"line":1967},[1050,13865,13866],{"class":1067},"    successful ",[1050,13868,1359],{"class":1088},[1050,13870,13871],{"class":1840}," sum",[1050,13873,1229],{"class":1088},[1050,13875,13554],{"class":1270},[1050,13877,1371],{"class":1063},[1050,13879,13880],{"class":1264}," r ",[1050,13882,1377],{"class":1063},[1050,13884,13885],{"class":1264}," results ",[1050,13887,13888],{"class":1063},"if",[1050,13890,6555],{"class":1063},[1050,13892,6235],{"class":1840},[1050,13894,1229],{"class":1088},[1050,13896,13897],{"class":1264},"r",[1050,13899,1202],{"class":1088},[1050,13901,3932],{"class":1673},[1050,13903,2898],{"class":1088},[1050,13905,13906,13909,13911,13913,13915,13917,13919,13922],{"class":1052,"line":1977},[1050,13907,13908],{"class":1067},"    failed ",[1050,13910,1359],{"class":1088},[1050,13912,1841],{"class":1840},[1050,13914,1229],{"class":1088},[1050,13916,6796],{"class":1264},[1050,13918,1274],{"class":1088},[1050,13920,13921],{"class":1991}," -",[1050,13923,13924],{"class":1067}," successful\n",[1050,13926,13927],{"class":1052,"line":2003},[1050,13928,1499],{"class":1067},[1050,13930,13931,13933,13935],{"class":1052,"line":2009},[1050,13932,1283],{"class":1063},[1050,13934,1286],{"class":1264},[1050,13936,1418],{"class":1088},[1050,13938,13939,13941,13943,13945,13947,13949,13952,13954],{"class":1052,"line":2037},[1050,13940,7448],{"class":1292},[1050,13942,1297],{"class":1296},[1050,13944,1293],{"class":1292},[1050,13946,1302],{"class":1088},[1050,13948,1305],{"class":1292},[1050,13950,13951],{"class":1296},"Cache warming completed",[1050,13953,1293],{"class":1292},[1050,13955,1441],{"class":1088},[1050,13957,13958,13960,13963,13965,13967,13970],{"class":1052,"line":2070},[1050,13959,7448],{"class":1292},[1050,13961,13962],{"class":1296},"successful",[1050,13964,1293],{"class":1292},[1050,13966,1302],{"class":1088},[1050,13968,13969],{"class":1264}," successful",[1050,13971,1441],{"class":1088},[1050,13973,13974,13976,13979,13981,13983],{"class":1052,"line":2090},[1050,13975,7448],{"class":1292},[1050,13977,13978],{"class":1296},"failed",[1050,13980,1293],{"class":1292},[1050,13982,1302],{"class":1088},[1050,13984,13985],{"class":1264}," failed\n",[1050,13987,13988],{"class":1052,"line":2109},[1050,13989,7699],{"class":1088},[1050,13991,13992],{"class":1052,"line":2124},[1050,13993,1212],{"emptyLinePlaceholder":1211},[1050,13995,13996,13998,14000,14002,14004,14006,14008,14010],{"class":1052,"line":2132},[1050,13997,1219],{"class":1218},[1050,13999,1222],{"class":1218},[1050,14001,13796],{"class":1225},[1050,14003,1229],{"class":1088},[1050,14005,13385],{"class":1232},[1050,14007,1202],{"class":1088},[1050,14009,13805],{"class":1232},[1050,14011,1236],{"class":1088},[1050,14013,14014,14016,14019],{"class":1052,"line":2167},[1050,14015,1243],{"class":1242},[1050,14017,14018],{"class":1246},"Warm cache for specific category.",[1050,14020,1250],{"class":1242},[1050,14022,14023,14025,14027,14029,14031,14033,14035],{"class":1052,"line":2172},[1050,14024,13423],{"class":1067},[1050,14026,1359],{"class":1088},[1050,14028,1584],{"class":1063},[1050,14030,13430],{"class":1264},[1050,14032,1229],{"class":1088},[1050,14034,13343],{"class":1264},[1050,14036,1614],{"class":1088},[1050,14038,14039,14041,14043,14045,14047,14049,14051,14053,14055],{"class":1052,"line":2194},[1050,14040,1256],{"class":1063},[1050,14042,13468],{"class":1264},[1050,14044,1229],{"class":1088},[1050,14046,13385],{"class":1264},[1050,14048,1202],{"class":1088},[1050,14050,4412],{"class":1264},[1050,14052,1202],{"class":1088},[1050,14054,13481],{"class":1270},[1050,14056,1614],{"class":1088},[1050,14058,14059,14061,14063,14066,14068,14070,14072],{"class":1052,"line":2200},[1050,14060,1283],{"class":1063},[1050,14062,2455],{"class":1218},[1050,14064,14065],{"class":1296},"\"Warmed cache for ",[1050,14067,2462],{"class":2461},[1050,14069,13343],{"class":1067},[1050,14071,2490],{"class":2461},[1050,14073,2493],{"class":1296},[1026,14075,14076],{},"Async views in Django enable building high-performance applications that can handle thousands of concurrent requests efficiently. The key is understanding when to use async views (I/O-bound operations), properly handling database operations with sync_to_async, and implementing effective error handling and resource management patterns. Start with simple async views and gradually implement more sophisticated patterns as your application's concurrency requirements grow.",[14078,14079,14080],"style",{},"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 .soVBu, html code.shiki .soVBu{--shiki-light:#39ADB5;--shiki-default:#999999;--shiki-dark:#666666}html pre.shiki code .s5Kfy, html code.shiki .s5Kfy{--shiki-light:#9C3EDA;--shiki-default:#AB5959;--shiki-dark:#CB7676}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 .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 .siWMO, html code.shiki .siWMO{--shiki-light:#6182B8;--shiki-default:#393A34;--shiki-dark:#DBD7CAEE}html pre.shiki code .s7CZa, html code.shiki .s7CZa{--shiki-light:#F76D47;--shiki-default:#2F798A;--shiki-dark:#4C9A91}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 .sBPpx, html code.shiki .sBPpx{--shiki-light:#E53935;--shiki-default:#393A34;--shiki-dark:#DBD7CAEE}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 .s8XtY, html code.shiki .s8XtY{--shiki-light:#39ADB5;--shiki-default:#1E754F;--shiki-dark:#4D9375}html pre.shiki code .sa2tF, html code.shiki .sa2tF{--shiki-light:#E2931D;--shiki-default:#998418;--shiki-dark:#B8A965}html pre.shiki code .sJdAF, html code.shiki .sJdAF{--shiki-light:#6182B8;--shiki-default:#998418;--shiki-dark:#B8A965}html pre.shiki code .sVsLi, html code.shiki .sVsLi{--shiki-light:#39ADB5;--shiki-default:#AB5959;--shiki-dark:#CB7676}html pre.shiki code .s3h35, html code.shiki .s3h35{--shiki-light:#F76D47;--shiki-default:#A65E2B;--shiki-dark:#C99076}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 .sD-vU, html code.shiki .sD-vU{--shiki-light:#E2931D;--shiki-default:#2E8F82;--shiki-dark:#5DA994}html pre.shiki code .sYn-s, html code.shiki .sYn-s{--shiki-light:#E2931D;--shiki-default:#59873A;--shiki-dark:#80A665}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 .se3Ec, html code.shiki .se3Ec{--shiki-light:#90A4AE;--shiki-default:#A65E2B;--shiki-dark:#C99076}html pre.shiki code .sFGJz, html code.shiki .sFGJz{--shiki-light:#E53935;--shiki-default:#A65E2B;--shiki-dark:#C99076}",{"title":1045,"searchDepth":1053,"depth":1060,"links":14082},[14083,14087,14091,14095],{"id":1032,"depth":1060,"text":1033,"children":14084},[14085,14086],{"id":1037,"depth":1071,"text":1038},{"id":2496,"depth":1071,"text":2497},{"id":5459,"depth":1060,"text":5460,"children":14088},[14089,14090],{"id":5463,"depth":1071,"text":5464},{"id":6973,"depth":1071,"text":6974},{"id":8401,"depth":1060,"text":8402,"children":14092},[14093,14094],{"id":8405,"depth":1071,"text":8406},{"id":10570,"depth":1071,"text":10571},{"id":12337,"depth":1060,"text":12338,"children":14096},[14097,14098],{"id":12341,"depth":1071,"text":12342},{"id":13144,"depth":1071,"text":13145},"md",null,{},{"title":713,"description":1028},"JG8g5AeTbdQELePJbQsrUZ2rKAmNDZ71e0TRKig79lk",[14105,14107],{"title":709,"path":710,"stem":711,"description":14106,"children":-1},"ASGI (Asynchronous Server Gateway Interface) is the spiritual successor to WSGI, designed to handle both synchronous and asynchronous Python web applications. Understanding ASGI is fundamental to building modern Django applications that support WebSockets, HTTP/2, and high-concurrency scenarios while maintaining compatibility with traditional synchronous code.",{"title":717,"path":718,"stem":719,"description":14108,"children":-1},"Django's async ORM support has evolved significantly since Django 3.1, but it's still a work in progress. Understanding the current capabilities, limitations, and best practices for async database operations is crucial for building efficient async Django applications. This chapter covers the current state of async ORM, workarounds for limitations, and strategies for optimal database performance in async contexts.",1772474949271]