9 | | These are the feature proposals that represent major architectural changes for Django. |
| 10 | || '''Code''' || '''Feature''' || '''Committer(s)''' || '''Ticket(s)''' || '''Commit''' || |
| 11 | || Contrib-08 || row-level permissions hooks in auth || MT, JK || #11010 || || |
| 12 | || Contrib-10 || Admin actions in CommentsAdmin || JKM, RKM, JB || #11625 || || |
| 13 | || Core-01 || Improved/reworked CsrfProtection || SW, LP, RKM, JB || #9977, #10816 || || |
| 14 | || Core-05 || Integrate `logging` with Django || MT, SW, RKM || || || |
| 15 | || Forms-02 || required/error classes on form rows || JKM, MT, BR, SW, JK, JB || #3512 || || |
| 16 | || GSoC-1 || Merge admin-ui branch || JKM, VR, SW, JB || || || |
| 17 | || GSoC-2 || Merge http-wsgi-improvements branch || MT, JB || || || |
| 18 | || GSoC-3 || Merge i18n-improvements branch || MT, JB || || || |
| 19 | || GSoC-4 || Merge model-validation branch || JK, JB || || || |
| 20 | || GSoC-5 || Merge multidb branch || SW, RKM || || || |
| 21 | || GSoC-6 || Merge test-improvements branch || KT, JB || || || |
| 22 | || ORM-10 || exists() method on QuerySets || MT, LP, JB || #11402 || || |
| 23 | || ORM-12 || Model.objects.raw(SQL) || JKM, MY, SW, RKM, JB || #11863 || || |
| 24 | || Serialization-01 || Foreign keys in serializers || JKM, MT, BR, RKM, JB || #7052 || || |
| 25 | || Templates-02 || Smarter {% if %} tag || SW, LP, RKM || [http://www.djangosnippets.org/snippets/1350/ snippet] || || |
| 26 | || Templates-04 || Better template tag loading || MT, JB || #3349, #6587 || || |
| 27 | || Templates-05 || Support caching compiled templates || MT, RKM || #6262 || || |
| 28 | || URLs-01 || Replace get_absolute_url() || JKM, SW || ReplacingGetAbsoluteUrl || || |
| 29 | || Views-01 || Class-based generic views || JK, JB || #6735 || || |
11 | | * Admin UI Enhancements (Zain Memon's GSoC project) |
12 | | * Improved/reworked CsrfProtection (see #9977, #10816) |
13 | | * i18n improvements (Marc Garcia's GSoC project) |
14 | | * #6845 Model validation (Honza Kral's GSoC project) |
15 | | * Multi-database support (Alex Gaynor's GSoC project) |
16 | | * Add {% doctype %} and {% field %} template tags from http://github.com/simonw/django-html/ |
17 | | * Add support for [wiki:Signing Signing and Signed Cookies] |
18 | | * #12012 Integrate the Python standard library logging module with Django - LoggingProposal |
19 | | * Support for non-relational databases: Tokyo Cabinet/Tyrant, MongoDB, Cassandra, Google Bigtable (AppEngine, #10192), Amazon SimpleDB, CouchDB, ZODB, etc |
20 | | * #17 Identity mapping in the ORM |
21 | | * #373 Multi-part primary keys |
22 | | * #6735 Class-based generic views |
| 31 | == Medium priority == |
26 | | These are the external projects that have been proposed for addition to Django's core. |
| 35 | || '''Code''' || '''Feature''' || '''Committer(s)''' || '''Ticket(s)''' || '''Commit''' || |
| 36 | || Admin-02 || Custom FilterSpecs || BR, LP || #5833 || || |
| 37 | || Contrib-05 || Syndication feed views || JKM, SW || http://github.com/bfirsh/syndication-view/ || || |
| 38 | || Core-02 || Signing and Signed Cookies || SW || || |
| 39 | || Email-01 || Pluggable email backends. || RKM || #10355 || || |
| 40 | || Forms-01 || Read-only form fields || MT || #342 || |
| 41 | || Forms-03 || Fieldsets for newforms || MT || #6630 || || |
| 42 | || ORM-03 || Multi-part primary keys || MT || #373 || || |
| 43 | || ORM-04 || Support bigint fields || KT || #399 || || |
| 44 | || ORM-08 || Add support for database schemas || JB || #6148 || || |
| 45 | || ORM-11 || Remove unnecessary savepoints with Oracle || JKM || #11156 || || |
| 46 | |
| 47 | Note: ''Admin-02'', ''Forms-01'', ''ORM-03'', and ''ORM-04'' are controversial (both +1 and -1 votes) and may need |
| 48 | discussion on django-dev before commit. |
28 | | * Add South (http://south.aeracode.org/) to contrib |
29 | | * Add IBM DB2 django adapter (http://code.google.com/p/ibm-db/wiki/ibm_db_django_README) to django.db.backends |
30 | | * Add Sybase SQL Anywhere backend (http://code.google.com/p/sqlany-django/) to django.db.backends |
31 | | * Search support in the ORM: http://github.com/bfirsh/django/tree/search |
32 | | * #4604 Message Passing For Anonymous Users (See also: SessionMessages) |
33 | | * #11698 Add Django Debug Toolbar to contrib |
34 | | * #11982 Integrate Reversion as a django contrib app |
35 | | * Add Alex's django-filters (http://github.com/alex/django-filter) instead of admin filters and #5833 Custom `FilterSpecs` proposal |
| 50 | == Low priority == |
39 | | === Admin === |
40 | | * #494 Option for classes on admin inlines |
41 | | * #5833 Custom `FilterSpecs` |
42 | | * #10871 Support for input arguments on admin actions. |
| 54 | || '''Code''' || '''Feature''' || '''Ticket(s)''' || '''Commit''' || |
| 55 | || Admin-01 || Option for classes on admin inlines || #494 || || |
| 56 | || Contrib-02 || Message Passing For Anonymous Users || #4604 || || |
| 57 | || Contrib-07 || Session-based FormWizard || #9200 || || |
| 58 | || Contrib-09 || LDAP authentication backend || || || |
| 59 | || Contrib-11 || Implement Atom Publishing Protocol || #3569 || || |
| 60 | || ORM-06 || Store datetime values as UTC || #1480, #2626 || || |
| 61 | || ORM-07 || Implement DurationFields || #2443 || || |
| 62 | || ORM-09 || Add ON DELETE and ON UPDATE support || #7539 || || |
| 63 | || Templates-03 || Easier conditional template tags || http://djangosnippets.org/snippets/1538 || || |
| 64 | || Templates-06 || Capture in a template variable || #6378 || || |
| 65 | || Templates-07 || django.template refactoring || #7806 || || |
| 66 | || URLs-02 || Support for subdomains in the url patterns || #8896 || || |
59 | | === Forms === |
60 | | * #342 Read-only form fields |
61 | | * #3512 Add "required" & "error" CSS classes to form rows in as_* methods |
62 | | * #6630 Fieldsets for newforms |
63 | | * #9223 Declarative widgets |
64 | | |
65 | | === ORM === |
66 | | * #399 Support 8-byte integer DB-fields (`bigint`) |
67 | | * #1480, #2626 Store datetime values as UTC, handle them consistently regardless of RDBMS, platform and make things easier for multi-timezone applications. |
68 | | * #2443 Implement `DurationFields` |
69 | | * #6148 Add support for database schemas |
70 | | * #7539 Add ON DELETE and ON UPDATE support |
71 | | * #11402 exists() method on `QuerySets` |
72 | | * #11156 Remove unnecessary savepoints with Oracle |
73 | | * #11863 Add a method to the ORM to create Model instances from raw sql queries (useful when the orm is limiting you) |
74 | | |
75 | | === Serialization === |
76 | | * #4656 Full serialization (Implementation available at http://code.google.com/p/wadofstuff/wiki/DjangoFullSerializers) |
77 | | * #7052 dumpdata/loaddata: Support using lookup dictionaries as foreign keys in JSON/XML/YAML data dumps |
78 | | |
79 | | === Templates === |
80 | | * Smarter {% if %} tag from http://www.djangosnippets.org/snippets/1350/ |
81 | | * Easier conditional template tags (http://www.djangosnippets.org/snippets/1538/) |
82 | | * #3349, #6587 Better template tag loading |
83 | | * #3569 Implement Atom Publishing Protocol |
84 | | * #6262 Support caching compiled templates |
85 | | * #6378 Capture arbitrary output as a template variable (or add a capture ttag) |
86 | | * #7806 django.template refactoring |
87 | | * ZPT templates (http://zpt.sourceforge.net/) would be a nice addition to the template machinery |
88 | | |
89 | | === URLs === |
90 | | * Replace get_absolute_url() with methods that are more useful and have more realistic names (See also: ReplacingGetAbsoluteUrl) |
91 | | * #8896 Support for subdomains in the url patterns, to allow easy reversing (or better: to allow reversing at all ;)) |
92 | | |
93 | | === HTTP === |
94 | | |
95 | | * #9886 File-like interface for HttpRequest (streaming request) |
| 76 | * Admin-03 (Support for input arguments on admin actions.) - this would overly complicate the admin UI and dilute the purpose of the admin actions. |
| 77 | * Contrib-01 (Add South to contrib) - general consensus - including that of South's lead developer - is that South isn't yet ready to be a bonafide part of Django. |
| 78 | * Contrib-03 (Add Django Debug Toolbar to contrib) - DDT's author prefers it as an external project. |
| 79 | * Contrib-04 (Integrate Reversion as a django contrib app) - too specialized to be included in Django. |
| 80 | * Contrib-06 (Allow for extendable auth_user module) - none of the proposals for how this would work have any sort of wide support. |
| 81 | * Core-04 (Add IBM DB2 django adapter django.db.backends) - immaturity; the authors haven't offered support for inclusion. |
| 82 | * ORM-01 (Support for non-relational databases) - way to big a feature to get done in a couple months. Incremental improvement is the way to go here. |
| 83 | * ORM-02 (Identity mapping in the ORM) - the feature doesn't seem to fit with the philosophy of Django's ORM, and works fine as an external plugin. |
| 84 | * ORM-13 (integrate http://github.com/bfirsh/django/tree/search) - it's not clear what's being proposed here. |
| 85 | * Templates-01 (integrate http://github.com/simonw/django-html)) - while there was agreement on the need for a solution, many felt that this particular solution was less than ideal. |