Django 6 रिलीज़
(docs.djangoproject.com)- वेब फ्रेमवर्क Django का 6.0 संस्करण जारी हुआ है, जो Python 3.12+ का समर्थन करता है और सुरक्षा, टेम्पलेट तथा asynchronous फीचर्स में व्यापक सुधार लाता है
- Content Security Policy(CSP) डिफ़ॉल्ट रूप से बिल्ट-इन है, जिससे XSS जैसी कंटेंट इंजेक्शन अटैक से बचाव के लिए पॉलिसी सेट की जा सकती है
- Template Partials सुविधा से टेम्पलेट के अंदर पुन: प्रयोज्य भाग परिभाषित करना संभव हुआ, जिससे कोड मॉड्यूलरिटी बेहतर हुई
- Background Tasks framework जोड़ा गया है, जो request-response cycle के बाहर async tasks चलाने का समर्थन करता है
- Python का नया email API अपनाया गया, MariaDB 10.5 का समर्थन हटाया गया, और
DEFAULT_AUTO_FIELDका डिफ़ॉल्ट बदलना आदि के साथ संगतता समायोजन और आधुनिकीकरण किया गया
Python संगतता
- Django 6.0 Python 3.12, 3.13, 3.14 का समर्थन करता है और प्रत्येक सीरीज़ के केवल latest release को ही official support मिलता है
- Django 5.2.x Python 3.10 और 3.11 का अंतिम संस्करण है
- Django 6.0 के बाद third-party ऐप्स से Django 5.2 से पुराने संस्करणों का सपोर्ट हटाने की सलाह दी जाती है
प्रमुख नई सुविधाएँ
Content Security Policy(CSP) का समर्थन
- Django में CSP standard इन-बिल्ट है, जो XSS जैसे कंटेंट इंजेक्शन अटैक से सुरक्षा को मजबूत करता है
ContentSecurityPolicyMiddleware,csp()context processor औरSECURE_CSPसेटिंग के जरिए नीति परिभाषित की जा सकती है- Python डिक्शनरी आधारित सेटअप से स्पष्ट और सुरक्षित policy composition संभव है
SECURE_CSP_REPORT_ONLYसे monitor mode सेट किया जा सकता है- view स्तर पर policy बदलने या disable करने के लिए decorator उपलब्ध है
Template Partials
partialdefऔरpartialटैग जोड़े गए हैं, जिससे टेम्पलेट फ्रैगमेंट को परिभाषित कर दोबारा उपयोग किया जा सकता हैtemplate_name#partial_nameसिंटैक्स सेget_template(),render(),{% include %}आदि में सीधे संदर्भित किया जा सकता है- तीसरे-पक्ष पैकेज
django-template-partialsउपयोगकर्ताओं के लिए migration guide दी गई है
Background Tasks framework
- Django में async कार्य निष्पादन हेतु बिल्ट-इन framework जोड़ा गया है
- HTTP request-response cycle के बाहर email भेजना, data processing आदि चलाया जा सकता है
@taskडेकोरेटर से task define करें औरenqueue()से queue में डालें
- बैकएंड
TASKSसेटिंग से चुना जाता है, जिसमें development और testing के लिए दो default backends शामिल हैं - Django केवल task निर्माण और queuing संभालता है; वास्तविक execution के लिए external worker process की जरूरत होगी
Python का नया ईमेल API अपनाया गया
- Django का email handling अब Python 3.6+ का आधुनिक email API (
email.message.EmailMessage) उपयोग करता है - पुराने
SafeMIMEText,SafeMIMEMultipartclasses deprecated हो गए हैं EmailMessage.message()का return type अब Python काEmailMessageinstance है
विस्तृत सुधार
Admin
- Font Awesome Free 6.7.2 आइकन सेट लागू किया गया
AdminSite.password_change_formattribute से admin password change form को customize किया जा सकता हैmessages.DEBUGऔरmessages.INFOके लिए अलग icon और CSS style उपलब्ध हैं
Auth
- PBKDF2 hash iteration count 1,000,000 से बढ़कर 1,200,000 कर दिया गया
GIS
GEOSGeometry.hasmproperty से M dimension मौजूद है या नहीं, यह पता चलता हैRotatefunction से निर्दिष्ट angle पर rotate करने का समर्थन हैBaseGeometryWidget.base_layerproperty से map tile provider customize किया जा सकता है- MariaDB 12.0.1+ पर
coveredby,isvalid,GeoHash,IsValidजैसी सुविधाएँ समर्थित हैं - widget rendering में inline JavaScript हटाई गई, इसलिए customization पर template बदलना पड़ेगा
PostgreSQL
- Lexeme expression जोड़ने से full-text search queries पर नियंत्रण बेहतर हुआ
CreateExtensionजैसी extension operations मेंhintsparameter जोड़ा गयाdjango.contrib.postgresसे जुड़े fields, indexes और constraints पर system checks जोड़े गए
Staticfiles
ManifestStaticFilesStorageअब path-ordering consistency सुनिश्चित करता है, जिससे अनावश्यक diff कम होता हैcollectstaticcommand डिफ़ॉल्ट रूप से केवल summary दिखाती है; विवरण के लिए--verbosity 2या उससे अधिक देना होता है
अन्य
- Haitian Creole भाषा का समर्थन जोड़ा गया
startproject,startappcommands अब non-existent directories स्वतः बना देती हैंshellcommand मेंdjango.conf.settingsजैसे सामान्य utilities auto-import हो जाते हैं- migrations में
zoneinfo.ZoneInfoserialization का समर्थन जोड़ा गया StringAgg,AnyValueजैसी नई aggregate functions जोड़ी गईंAsyncPaginator,AsyncPageके साथ async pagination का समर्थन है- ASGI में HTTP/2 multiple Cookie headers समर्थन उपलब्ध है
- टेम्पलेट में
forloop.lengthvariable जोड़ा गया,querystringटैग सुधारित किया गया DiscoverRunnerअबforkservermode में parallel tests का समर्थन करता है
गैर-संगत बदलाव
Database Backend API
BaseDatabaseSchemaEditorऔर PostgreSQL backend में column हटाते समयCASCADEउपयोग बंद किया गयाreturn_insert_columns()→returning_columns()सहित कई method नाम बदल गए हैंUPDATE … RETURNINGसपोर्ट करते समयDatabaseFeatures.can_return_rows_from_update=Trueसेट किया जा सकता है
deprecate (support dropped)
- MariaDB 10.5 support समाप्त (10.6+ आवश्यक)
- Python 3.12 से कम versions का समर्थन समाप्त
- प्रमुख libraries की minimum versions:
aiosmtpd 1.4.5,bcrypt 4.1.1,Pillow 10.1.0,psycopg 3.1.12आदि
- प्रमुख libraries की minimum versions:
mixed_subtype,alternative_subtype,encodingproperties हटाई गईं- internal implementation बदलने के कारण custom EmailMessage subclasses की जाँच आवश्यक होगी
DEFAULT_AUTO_FIELD डिफ़ॉल्ट बदलाव
- डिफ़ॉल्ट
AutoFieldसे बदलकरBigAutoFieldकिया गया - Django 3.2 के बाद के
models.W042warning को ignore करने वाले प्रोजेक्ट्स में अतिरिक्त सेटिंग जोड़नी होगी
ORM expressions
as_sql()method के return parameters अब tuple होने चाहिए
अन्य
- JSON serialization में हमेशा newline जोड़ा जाता है
asgirefकी minimum version 3.9.1 तक बढ़ाई गई
हटने वाली सुविधाएँ
django.core.mail API
get_connection(),send_mail()आदि में optional arguments केवल keyword arguments के रूप में देने होंगेEmailMessage,EmailMultiAlternativesनिर्माण करते समय पहले 4 positional arguments के बाद बाकी केवल keyword args होंगे
अन्य
BaseDatabaseCreation.create_test_db(serialize)हटाया गया, उसकी जगहserialize_db_to_string()उपयोग करें- PostgreSQL-specific
StringAgg,OrderableAggMixinहटे/हटाए जाएंगे urlize,urlizetruncका default protocol Django 7.0 में HTTPS में बदलने की योजना हैADMINS,MANAGERSसेटिंग अब (name, address) tuple की जगह email strings की list लेनी होगीSafeMIMEText,SafeMIMEMultipart,BadHeaderErrorजैसी email संबंधित classes हटाई गईं
हटाए गए फीचर
BaseConstraintसे positional arguments का समर्थन हटाया गयाDjangoDivFormRenderer,Jinja2DivFormRendererहटाए गएcx_Oracledatabase driver हटाया गयाforms.URLFieldका default scheme"http"से बदलकर"https"कर दिया गयाModel.save()औरModel.asave()में positional args हटाए गएModelAdmin.log_deletion(),LogEntryManager.log_action()हटाए गएdjango.utils.itercompatmodule हटाया गयाGeoIP2.coords(),GeoIP2.open()methods हटाए गएForeignObject.get_joining_columns()और संबंधित methods हटाए गए
Django 6.0 ने सुरक्षा सुदृढ़ीकरण, async processing और आधुनिक email API अपनाने के माध्यम से framework की स्थिरता और scalability को बेहतर बनाया है, और Python 3.12+ ecosystem की ओर migration को स्पष्ट रूप से तय किया है।
अभी कोई टिप्पणी नहीं है.