| 1 | = Django Warts = |
| 2 | |
| 3 | Cruft that has accumulated in Django that would be nice to see fixed in Django 2.0 |
| 4 | |
| 5 | This page is for vague or broad ideas, and is in addition to the definite plans on the [http://docs.djangoproject.com/en/dev/internals/deprecation/ deprecation timeline]. |
| 6 | |
| 7 | == Form validation/model forms/model saving == |
| 8 | |
| 9 | It is a bit complex at the moment - it would be nice to see an API that wasn't constrained by backwards compatibility like the current one was. |
| 10 | |
| 11 | == Middleware == |
| 12 | |
| 13 | The ordering of a stack of request/view/response/exception middleware is pretty complex. Why do we actually need all these different types of middleware? We could actually write all the middleware as view decorators - simple callables that take a view function and return a view function (this is proved by the fact that you can convert middleware into decorators). The middleware stack could become a list of decorators that are globally applied. This brings up the need for how to handle exceptions to the global list of middleware - and how to handle nicely the case of 'sub-views'. |
| 14 | |
| 15 | == Ticket 14182 == |
| 16 | |
| 17 | The !CsrfViewMiddleware stops per-request upload handlers being added - ticket #14182. The workaround is ugly. |