| | 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. |