169 | | A related area is providing alternatives to the regular expression based url resolvers. |
| 172 | There is also a need to look at URLconfs and the URL resolution process. The current URL dispatch mechanism is hard coded, and is somewhat limited. However, if this mechanism could be customised, it would be possible to introduce new features, or even an entirely different URL dispatch mechanism, supporting features such as: |
| 173 | |
| 174 | * Domain based dispatch |
| 175 | * Wrapping multiple URLs, or entire URLconfs in a decorator/middleware |
| 176 | * Alternate schemes for URL definition (e.g., a non-regex based pattern matching system) |
| 177 | * Alternate schemes for URL registration (e.g., a routing-based URL system) |
| 178 | |
| 179 | === SQLAlchemy / NoSQL integration === |
| 180 | * "Complexity:" Medium |
| 181 | |
| 182 | With the success of the 2014 GSoC project to formalise Meta, we're now in a position to use that interface to do interesting things. |
| 183 | |
| 184 | A common request over the entire life of Django has been to use Django's forms (and in particular, Django's Admin) with data stores that aren't Django's ORM. SQLAlchemy is a popular choice for those using SQL databases; a number of NoSQL data stores have also been popular at various times. |
| 185 | |
| 186 | The aim of this project would be to take a set of models defined in a non-Django data store, and define the mechanisms necessary to expose those models in Django's contrib.admin interface. Daniel (last year's GSOC student) proved this was possible by providing a proof-of-concept interface to Gmail inside contrib.admin. |
| 187 | |
| 188 | There will be two parts to this project: |
| 189 | 1. Developing a Django-Meta compliant interface for your non-Django data store of choice. |
| 190 | 2. Fixes and improvements to Django itself as necessary to support (1) |
| 191 | |
| 192 | The code produced under part (1) would be a standalone repository and project, *not* a candidate for inclusion into Django itself. Django won't be gaining official SQLAlchemy support - but we will be able to point at a viable proof of concept. |
| 193 | |
| 194 | This project could be taken up by several GSoC students, with each student developing a backend for a different data store. If more than one student is accepted for this project, they'd be expected to coordinate efforts on any bug fixing and/or improvements required in Django itself. |